通过Proxy with Authentcation的OkHttp请求失败

时间:2018-04-25 18:15:21

标签: android proxy okhttp

类似的问题出现在GitHub:https://github.com/square/okhttp/issues/2900

我尝试使用代码发出请求:

final Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxyhost", 8001));
final Response response = new OkHttpClient.Builder()
        .proxy(proxy)
        .proxyAuthenticator(new Authenticator() {
            @Override
            public Request authenticate(Route route, Response response) throws IOException {
                String credential = Credentials.basic("proxyuser", "proxypass");
                return response.request().newBuilder()
                        .header("Proxy-Authorization", credential)
                        .build();                        
            }
        })
        .build()
        .newCall(new Request.Builder()
                .get()
                .url("https://www.google.com/")
                .build())
        .execute();

但我收到错误:407 Proxy Authentication Required

顺便说一下,当我在我的电脑上设置代理,打开Chrome并转到谷歌时,会弹出一个窗口,我应该输入登录名和密码。如果我点击取消 - 同一页面上有文字

  

需要407代理身份验证。访问所请求的资源   管理员不允许或您需要有效的用户名/密码才能使用   这个资源

所以我的问题是如何使用OkHttp代理?知道使用代理的其他方式或库

会很有用

1 个答案:

答案 0 :(得分:-1)

尝试从jre / lib文件夹中的net.properties中删除“基本”

jdk.http.auth.tunneling.disabledSchemes=Basic

需要成为

jdk.http.auth.tunneling.disabledSchemes=