我使用apache commons 3.1來實現http代理支持。 我正嘗試通過代理連接到遠程主機。代理服務器配置沒有任何身份驗證,但是遠程主機配置了身份驗證。 當我將這個代理通過參數屬性文件,它給了警告,同時執行:Apache客戶端中的httpClient代理支持3.1
WARN - 搶先進行身份驗證請求,但沒有默認代理憑據 - 不適用於Basic @ XX.XX.XX.XX WARN需要代理證書availble
但是執行繼續。
另一方面,當我通過JVM參數傳遞代理參數時,再次發出相同的警告並停止執行。
這種行爲是否有任何特定的原因?在通過屬性文件和JVM參數傳遞代理參數方面是否有區別?
下面是代碼:
if(System.getProperty("http.proxyHost") != null && System.getProperty("http.proxyPort") != null) {
httpClient.getHostConfiguration().setProxy(System.getProperty("http.proxyHost"), Integer.parseInt(System.getProperty("http.proxyPort")));
}
else if(AMXAdminTask.props.getProperty("http.proxyHost") != null && AMXAdminTask.props.getProperty("http.proxyPort") != null) {
httpClient.getHostConfiguration().setProxy(Propfile.props.getProperty("http.proxyHost"), Integer.parseInt(Propfile.props.getProperty("http.proxyPort")));
}
我能夠用相同的代碼小提琴手測試代理服務器。我可以從屬性文件和JVM ags傳遞代理參數。 – user1173339
現在我遇到了有關代理服務器身份驗證的問題。我使用小提琴作爲代理服務器。我在代理服務器和遠程主機都有身份驗證。我在httpClient頭中設置了http代理憑證。但是我在響應中出現錯誤:「傳輸錯誤407:需要代理身份驗證。」並在提琴手中看到一條消息:「沒有WWW-驗證標題存在。」 – user1173339
您需要爲您的代理用戶和密碼設置系統屬性: 'System.setProperty(「http.proxyUser」,authUser);' 'System.setProperty(「http.proxyPassword」,authPassword);' –