System.err:java.net.UnknownHostException:无法解析主机;proxy01";

System.err:java.net.UnknownHostException:无法解析主机;proxy01";,java,okhttp3,Java,Okhttp3,我得到了这个错误 System.err:java.net.UnknownHostException:无法解析主机“proxy01”:没有与主机名关联的地址 我正在使用OKHTTP。我的公司有两个互联网连接。一种需要认证的程序。当我使用来宾网络进行OKHTTP调用时,它会按预期工作。但当我切换网络并连接到安全网络时,我得到了上面的错误。我知道我的公司有代理服务器,我怀疑它正在阻止未经身份验证的传出网络呼叫。当我连接到安全网络并使用我的用户名和密码进行身份验证时,我可以在手机上打开google.co

我得到了这个错误

System.err:java.net.UnknownHostException:无法解析主机“proxy01”:没有与主机名关联的地址


我正在使用OKHTTP。我的公司有两个互联网连接。一种需要认证的程序。当我使用来宾网络进行OKHTTP调用时,它会按预期工作。但当我切换网络并连接到安全网络时,我得到了上面的错误。我知道我的公司有代理服务器,我怀疑它正在阻止未经身份验证的传出网络呼叫。当我连接到安全网络并使用我的用户名和密码进行身份验证时,我可以在手机上打开google.com,但是,当我在手机上打开我的应用程序时,我会出现上述错误

在使用OKHTTP时,您需要提供代理设置及其身份验证程序,类似这样:

Authenticator proxyAuthenticator = new Authenticator() {
  @Override public Request authenticate(Route route, Response response) throws IOException {
       String credential = Credentials.basic(<username>, <password>);
       return response.request().newBuilder()
           .header("Proxy-Authorization", credential)
           .build();
  }
};

OkHttpClient client = new OkHttpClient.Builder()
    .proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(<proxyHost>, <proxyPort>)))
    .proxyAuthenticator(proxyAuthenticator)
    .build();
验证器代理验证器=新验证器(){
@覆盖公共请求身份验证(路由、响应)引发IOException{
字符串凭证=凭证。基本(,);
返回response.request().newBuilder()
.header(“代理授权”,凭证)
.build();
}
};
OkHttpClient客户端=新建OkHttpClient.Builder()
.proxy(新代理(proxy.Type.HTTP,新InetSocketAddress(,))
.proxyAuthenticator(proxyAuthenticator)
.build();

用各自的值替换令牌。

可能使用proxy01的完全限定域名。主机名需要在应用程序运行的计算机上解析。为什么我用手机打开的应用程序不需要代理服务器的用户名和密码就可以工作。例如,whatsapp?一旦我对网络进行了认证,它就能完美地工作