java - 尝试用 Java 发送请求时出现错误 407

标签 java proxy request

我有以下代码:

public class SendRequest {

public static void main(String[] args) throws ClientProtocolException, IOException {

    String url = "http://backoffice.xyz";

    HttpHost proxy = new HttpHost("proxy.proxy", 8080, "http");
    HttpClient client = HttpClientBuilder.create().setProxy(proxy).build();
    HttpGet request = new HttpGet(url);

    //request.addHeader("User-Agent", "USER-AGENT");
    HttpResponse response = client.execute(request);

    System.out.println("Response Code: " + response.getStatusLine().getStatusCode());

    BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

    StringBuffer result = new StringBuffer();
    String line = "";
    while((line = rd.readLine()) != null){
        result.append(line);
    }
        System.out.println(result.toString());

}

}

这将返回 407 未经授权的访问/缓存访问被拒绝错误。我需要包含什么代码才能通过代理进行身份验证?

最佳答案

您的代理是否需要基于用户名/密码的身份验证?如果是这样,请尝试实现 java.net.Authenticator。我想你需要设置 useSystemProperties

Authenticator.setDefault(new Authenticator(){ 密码验证 getPasswordAuthentication(){ 返回新的PasswordAuthentication(用户名,密码); } });

您可能需要将 setDefaultCredentialsProvider(CredentialsProvidercredentialsProvider) 添加到 HTTPClientBuilder 并使用 SystemDefaultCredentialsProvider 实例。

关于java - 尝试用 Java 发送请求时出现错误 407,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41099529/

相关文章:

c# - .NET 代理检测

java - 如何在 JSP (Struts2) 中访问动态属性

android - FacebookSDK Request.newMeRequest 从未被调用

java - 如何使用struts-xml文件将控制转发到Div标签

java - 在自己的主体中测试类是个好主意吗?

java - 当我可以实现完整的类时,为什么还需要接口(interface)?

tomcat - 当代理服务器关闭时,NGINX 反向代理返回 502 错误网关

ios - 静态成员不能用于协议(protocol)元类型

Java 关闭钩子(Hook)

javascript - 来自 LOCALHOST 的 Electron GET 请求