无法为Apollo Client(Apollo-Kotlin 3版本)添加OkHttp客户端
解决Apollo Client 3.x中无法找到okHttpClient()方法的问题
问题原因
Apollo Client 3.x版本调整了网络客户端的配置逻辑,okHttpClient()方法不再直接暴露在ApolloClient.Builder中,且需要额外引入OkHttp相关依赖包才能使用自定义OkHttp客户端。
解决方案
1. 添加Apollo OkHttp依赖
在应用模块的build.gradle中补充apollo-okhttp依赖:
// Graphql def apollo3GraphqlVersion = '3.6.1' implementation "com.apollographql.apollo3:apollo-runtime:$apollo3GraphqlVersion" implementation "com.apollographql.apollo3:apollo-rx3-support:$apollo3GraphqlVersion" // 新增OkHttp支持依赖 implementation "com.apollographql.apollo3:apollo-okhttp:$apollo3GraphqlVersion"
2. 修改Apollo Client初始化代码
Apollo 3.x需要通过HttpClient包装自定义OkHttp实例,再传递给ApolloClient.Builder:
// 先创建自定义OkHttpClient实例(可添加拦截器、超时时间等配置) OkHttpClient okHttpClient = new OkHttpClient.Builder() .connectTimeout(10, TimeUnit.SECONDS) .build(); // 构建ApolloClient apolloClient = new ApolloClient.Builder() .serverUrl(baseUrl) // 通过HttpClient传递OkHttp实例 .httpClient(HttpClient.create(okHttpClient)) .build();
若无需自定义OkHttp配置,可直接使用默认HttpClient;但要指定自定义实例时,必须通过上述HttpClient包装的方式传递。
内容的提问来源于stack exchange,提问作者nandha-dev
相关产品推荐
相关产品推荐

