如果从响应中解析JSON失败,那么能够记录响应有问题的特定API请求将是有益的。为此,我想添加一个CallAdapterFactory
来维护请求的网址,并将其附加到Callback#onFailure
中的错误消息中。
我查看了OkHttpCall
代码,并且createRawCall()
中构建的网址永远不会超出OkHttpCall
。有没有办法访问由Retrofit构建的URL字符串以记录请求?
答案 0 :(得分:1)
您可以使用Interceptor
。
private static class UrlInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
String url = request.urlString();
Log.d(TAG, url);
Response response = chain.proceed(request);
return response;
}
}
您可以将其添加到您的客户端,如下所示:
OkHttpClient client = new OkHttpClient();
client.interceptors().add(new UrlInterceptor());
如果您想记录更多详细信息,可以查看HttpLoggingInterceptor
。
答案 1 :(得分:0)
以下针对Okhttp3的解决方案:
static class URLInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
String url = request.url().toString();
Log.d("TAG", url);
return chain.proceed(request);
}
}