大家好,我很无望,请问你们。我正在尝试执行一个简单的HTTP请求,但是使用代理服务器,我得到407错误代码。我使用Unirest和Java 8。
Unirest.config().proxy(host, port, usernameProxy, passwordProxy);
HttpResponse<JsonNode> response = Unirest.post(url).asJson();
String body = response.getBody().toString();
就是这样,我的网址是私有的,但我是这样写的:“ https://myurl.com/?param1 = param&param2...。它可以无代理工作,但是我受代理的困扰。非常感谢
好像代理服务器预计在头内的代理凭据,这Unirest
似乎不传播。
标头必须专门包含"Proxy-Authorization"
密钥,以便甚至开始握手。
String proxyCred= "user:password";
String baseCred= Base64.getEncoder().encodeToString(proxyCred.getBytes());
HttpHeaders headers = new HttpHeaders();
headers.add("Proxy-Authorization", "Basic " + baseCred); // the proxy server needs this
该解决方案使用该Basic
机制;它可能不起作用,因为代理可能需要其他类型的身份验证。通过读取Proxy-Authenticate
服务器响应中的标头,您可以知道哪一个。
如果通信不安全(HTTP而不是HTTP S),则可以使用WireShark等工具嗅探数据包来读取响应。找到之后407 packet
,您可以读取Proxy-Authenticate
值的内部并根据此值修改您的授权方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句