2016-08-16 87 views
9

有沒有辦法獲得請求的最終網址?我知道我可以禁用重定向,並且我自己可以禁用,但是有沒有辦法獲得我正在加載的當前URL?比如,如果我要求a.com並將其重定向到b.com,是否有辦法獲取url b.com的名稱?如何獲取OkHttp3重定向的URL?

回答

14

響應對象提供了一系列用於獲取它的請求和響應。

爲了獲得最終的URL,呼籲Responserequest()的最後Request然後提供url()你的願望。

您可以通過撥打priorResponse()並查看每個Response的關聯Request來關注整個響應鏈。

-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