如何获取OkHttp3重定向的URL?
2022-09-02 23:33:42
有没有办法获取请求的最终 URL?我知道我可以禁用重定向并自己执行此操作,但是有没有办法获取我正在加载的当前URL?例如,如果我请求 a.com 并被重定向到 b.com,有没有办法获取url b.com 的名称?
有没有办法获取请求的最终 URL?我知道我可以禁用重定向并自己执行此操作,但是有没有办法获取我正在加载的当前URL?例如,如果我请求 a.com 并被重定向到 b.com,有没有办法获取url b.com 的名称?
响应对象提供用于获取响应的请求和响应的链。
要获取最终 URL,请在 上调用 request()
以获取最终 URL,然后提供所需的 url()。
Response
Request
您可以通过调用 priorResponse()
并查看每个 关联的 响应链来跟踪整个响应链。Response
Request
OkHttp.Builder 提供了 NetworkInterceptor。下面是一个示例:
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());