2016-08-23 2 views
1

Я получаю эту ошибкуSystem.err: java.net.UnknownHostException: Не удается разрешить хост "proxy01"

System.err: java.net.UnknownHostException: Не удается решить хозяина "proxy01": Нет сопоставлен адрес с именем хоста

Я использую OKHTTP. У моей компании два интернет-соединения. Тот, который требует аутентификации. Когда я делаю вызов OKHTTP с помощью гостевой сети, он работает так, как ожидалось. Но когда я переключаю сеть и подключаюсь к защищенной сети, я получаю ошибку выше. Я знаю, что у моей компании есть прокси-сервер, который, как подозревают, предотвращает исходящий сетевой вызов без аутентификации. Когда я подключаюсь к защищенной сети и аутентифицирую свое имя пользователя и пароль, я могу открыть google.com на своем телефоне, однако, когда я открываю приложение на телефоне, я получаю вышеуказанную ошибку.

+0

Возможно, используйте полное доменное имя proxy01. Имя хоста должно быть разрешено на машине, на которой выполняется приложение. – Guenther

ответ

1

Вам необходимо предоставить прокси-сервер настройки и его аутентификации при работе с 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(); 

<token> заменить лексем с их соответствующими значениями.

+0

Почему приложения I открываются с использованием моего телефона, не требуя имени пользователя и пароля для прокси-сервера. Пример, whatsapp? Как только l аутентифицирует сеть, она работает безупречно –

 Смежные вопросы

  • Нет связанных вопросов^_^