2017-02-20 31 views
1

я хочу подключиться к URL-адрес, как это «http://192.168.10.xxx/eng ...»URL соединения включают в себя имя и пароль

и в браузере, я могу пройти мимо «HTTP: админ: [email protected]»

но когда я использую андроид okhttp и подключить URL

всегда Ответное прошедшее проверки подлинности

я использую много API для тестирования, но не исправить это

, кто может я это исправить ... пожалуйста мне

ГПУ

спасибо очень много

OkHttpClient client = new OkHttpClient(); 
    String url = "http://192.168.10.254/eng/admin/siteSurvey.cgi"; 
    Request request = new Request.Builder().url(url).build(); 
    client = new OkHttpClient.Builder() 
      .authenticator(new Authenticator() { 
       @Override 
       public Request authenticate(Route route, Response response) throws IOException { 
        System.out.println("Authenticating for response: " + response); 
        System.out.println("Challenges: " + response.challenges()); 
        String credential = Credentials.basic("admin", "admin"); 
        return response.request().newBuilder() 
          .header("Authorization", credential) 
          .build(); 
       } 
      }) 
      .build(); 
    Call call = client.newCall(request); 
    call.enqueue(new Callback() { 
     @Override 
     public void onResponse(Call call, Response response) { 
      String json = null; 
      try { 
       json = response.body().string(); 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      Log.d("OKHTTP", json); 
     } 
     @Override 
     public void onFailure(Call call, IOException e) { 

     } 
    }); 

ответ

1

вики есть пример в рецептах

https://github.com/square/okhttp/wiki/Recipes#handling-authentication

client = new OkHttpClient.Builder() 
    .authenticator(new Authenticator() { 
     @Override public Request authenticate(Route route, Response response) throws IOException { 
     System.out.println("Authenticating for response: " + response); 
     System.out.println("Challenges: " + response.challenges()); 
     String credential = Credentials.basic("jesse", "password1"); 
     return response.request().newBuilder() 
      .header("Authorization", credential) 
      .build(); 
     } 
    }) 
    .build(); 

И есть примеры в StackOverflow как Что ж.

+0

Yuri Schimke, спасибо, я стараюсь использовать этот matheod, , но отклик от меня 401, у меня есть обновленный код, может просить вас сказать, где я должен исправить? –