2016-08-16 2 views
9

Есть ли способ получить окончательный URL-адрес запроса? Я знаю, что я могу отключить перенаправления и сам по себе, но есть ли способ получить текущий URL-адрес, который я загружаю? Например, если я попросил a.com и получил перенаправление на b.com, есть ли способ получить имя url b.com?Как получить адрес перенаправления OkHttp3?

ответ

14

Объект ответа предоставляет цепочку запросов и ответов, которые были использованы для его получения.

Чтобы получить конечный URL, вызовите request() на Response для окончательного Request который затем обеспечивает url() вы хотите.

Вы можете отслеживать всю цепочку ответа, позвонив по номеру priorResponse() и посмотрев на связанные ResponseRequest.

-1

OkHttp.Builder имеет NetworkInterceptor provided.Here пример:

 OkHttpClient httpClient = new OkHttpClient.Builder() 
      .addNetworkInterceptor(new Interceptor() { 
       @Override 
       public Response intercept(Chain chain) throws IOException { 
        System.out.println("url: " + chain.request().url()); 
        return chain.proceed(chain.request()); 
       } 
      }) 
      .build(); 
    System.out.println(httpClient.newCall(new Request.Builder().url("http://google.com").build()).execute()); 

OkHttp3 wiki: Interceptors

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

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