我在我的应用程序中使用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>/...
作为线程名。
答案 0 :(得分:1)
我认为您无法为同步请求自定义线程名称,但是您应该能够为异步请求进行自定义。我将为您提供一般步骤,而不是逐行逐行输入说明。您需要创建一个自定义ThreadFactory
,然后可以将其传递到ExecutorService
,然后可以将其传递到Dispatcher
,然后可以使用该自定义链接来构建OkHttp客户端。
祝你好运。