2016-08-16 14 views
9

リクエストの最終URLを取得する方法はありますか?私はリダイレクトを無効にすることができますが、これは自分自身にはできますが、現在ロードしているURLを取得する方法はありますか?同様に、a.comをリクエストしてb.comにリダイレクトされた場合、url b.comの名前を取得する方法はありますか?OkHttp3リダイレクトURLを取得するには?

答えて

14

レスポンスオブジェクトは、取得に使用された要求と応答のチェーンを提供します。

は、最終URLを取得し、その後 url()あなたが望む提供し、最終的な Requestため Responserequest()を呼び出します。

あなたがpriorResponse()を呼び出して、Request関連する各Response年代を見て、全体の応答チェーンをたどることができます。

-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

関連する問題