407代理身份验证错误-unirest java 8

jexiocij  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(442)

大家好,我太绝望了,问问你们。我试图做一个简单的http请求,但我的代理我得到407错误代码。我使用unirest和java8。

Unirest.config().proxy(host, port, usernameProxy, passwordProxy);   
 HttpResponse<JsonNode> response = Unirest.post(url).asJson();
 String body = response.getBody().toString();

就是这样,我的url是私有的,但我这样写的:“https://myurl.com/?param1=param&param2.... 它工作proxyless,但我与代理卡住了。谢谢

z8dt9xmd

z8dt9xmd1#

似乎代理服务器需要头中的代理凭据,这 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而不是https),您可以通过使用wireshark等工具嗅探数据包来读取响应。一旦你找到了 407 packet ,你可以在 Proxy-Authenticate 评估并修改您的授权方法。

相关问题