如何在OkHttp客户端中设置线程名称

时间:2019-06-11 07:33:24

标签: java okhttp

我在我的应用程序中使用OkHttp v3.14.2。通过以下配置,我可以看到线程名称使用我设置的URL。是否可以为OkHttp客户端用来调用Web请求的线程设置自定义名称?

我当前的实现使用以下代码创建OkHttp的实例

private static OkHttpClient initializeOkHttpClient() {
    final ConnectionPool pool = new ConnectionPool(5, 15, TimeUnit.SECONDS);

    final ConnectionSpec cs = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
            .tlsVersions(TlsVersion.TLS_1_2)
            .build();

    return new OkHttpClient.Builder()
            .connectionSpecs(Arrays.asList(cs))
            .connectTimeout(20000, TimeUnit.MILLISECONDS)
            .readTimeout(20000, TimeUnit.MILLISECONDS)
            .connectionPool(pool)
            .retryOnConnectionFailure(true)
            .build()
    ;
}

在日志中,我可以看到OkHttp https://<url>/...作为线程名。

1 个答案:

答案 0 :(得分:1)

我认为您无法为同步请求自定义线程名称,但是您应该能够为异步请求进行自定义。我将为您提供一般步骤,而不是逐行逐行输入说明。您需要创建一个自定义ThreadFactory,然后可以将其传递到ExecutorService,然后可以将其传递到Dispatcher,然后可以使用该自定义链接来构建OkHttp客户端。 祝你好运。