我正嘗試使用澤西島休息客戶端身份驗證配置代理設置。起初,我用下面的代碼與代理工作得很好,不需要身份驗證澤西島 - 版本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中的代理認證?我做錯了嗎?」
感謝
我傳遞代理參數作爲-D jvm參數,但不知何故,如果代理需要身份驗證,它不起作用。任何想法爲什麼會這樣? – coderC