2012-09-13 22 views
0

我正嘗試使用澤西島休息客戶端身份驗證配置代理設置。起初,我用下面的代碼與代理工作得很好,不需要身份驗證澤西島 - 版本1.14中的代理身份驗證

ClientConfig config = new DefaultClientConfig(); 
Client client = Client.create(config); 

然而,如果需要驗證它不工作的代理。 我嘗試使用Jersey Apache Apache客戶端與HttpClient 4.2.1從HttpComponents項目與下面的代碼片段。

final ApacheHttpClientConfig config = new DefaultApacheHttpClientConfig(); 
Map<String, Object> configProp = config.getProperties(); 
final String proxyHost = System.getProperty("http.proxyHost"); 
final String proxyPort = System.getProperty("http.proxyPort"); 

if(proxyHost != null && proxyPort != null){ 
     configProp.put(DefaultApacheHttpClientConfig.PROPERTY_PROXY_URI, "http://" + proxyHost + ":" + proxyPort); 

     final String proxyUser = System.getProperty("http.proxyUser"); 
     final String proxyPassword = System.getProperty("http.proxyPassword"); 
     if(proxyUser != null && proxyPassword != null){ 
      ApacheHttpClientState state = config.getState(); 
      state.setProxyCredentials(AuthScope.ANY_REALM, proxyHost, Integer.parseInt(proxyPort), proxyUser, proxyPassword); 

     } 
} 

它在config.getState()處拋出「ClassNotFoundException」錯誤。它看起來像HttpClient中Credentials類的路徑已更改,並且平臺Apache Http Client無法找到Credentials類。

所以,我的問題是「是否有一種不同的方式來處理最近版本的Jersey或Jersey中的代理認證?我做錯了嗎?」

感謝

回答

0

好在Jersey Apache Client庫和HttpComponents HttpClient庫之間似乎存在依賴關係問題。我使用Commons HttpClient庫和Jersey Apache Client庫,它工作得很好。

0

嘗試給它-D JVM參數。

+0

我傳遞代理參數作爲-D jvm參數,但不知何故,如果代理需要身份驗證,它不起作用。任何想法爲什麼會這樣? – coderC