okhttp 学习小结 - 怎么在 header 自定义参数 自定义log

通过自定义OkHttp的 Interceptor 来实现

Interceptor可以在OkHttp的请求和响应中添加、修改和删除headers,以及做其他的一些操作

public class LoggingInterceptor implements Interceptor {
    @Override public Response intercept(Chain chain) throws IOException {
        Request request = chain.request();
        // 在请求头中添加log信息
        request = request.newBuilder()
                .header("log-info", "your log message here")
                .build();

        long t1 = System.nanoTime();
        Log.d("OkHttp", String.format("Sending request %s on %s%n%s",
            request.url(), chain.connection(), request.headers()));

        Response response = chain.proceed(request);

        long t2 = System.nanoTime();
        Log.d("OkHttp", String.format("Received response for %s in %.1fms%n%s",
            response.request().url(), (t2 - t1) / 1e6d, response.headers()));

        return response;
    }
}

在上面的例子中,我们创建了一个LoggingInterceptor类来拦截OkHttp的请求和响应,并在请求头中添加了一个名为"log-info"的header。你可以替换这个header的名字和值,来自定义你的log信息。

接下来,你可以将LoggingInterceptor添加到OkHttpClient中:

OkHttpClient client = new OkHttpClient.Builder()
    .addInterceptor(new LoggingInterceptor())
    .build();

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容