使用Apolloclient-Android进行graphql调用:
apolloClient().mutate(RegisterCardTokenMutation.builder().token(token).build()).enqueue(object : ApolloCall.Callback<RegisterCardTokenMutation.Data>() {
override fun onFailure(e: ApolloException) {
emitter.onError(e)
}
override fun onResponse(response: Response<RegisterCardTokenMutation.Data>) {
emitter.onNext((response.data() as RegisterCardTokenMutation.Data).registerCreditCard())
emitter.onComplete()
}
})
这是apollo客户端。
private fun apolloClient(): ApolloClient =
ApolloClient.builder().serverUrl(BASE_URL)
.okHttpClient(OkHttpClient.Builder()
.addInterceptor { chain ->
val original = chain.request()
val builder = original.newBuilder().method(original.method(), original.body())
builder.header("Authorization", "TOKEN")
chain.proceed(builder.build())
}
.build())
.addCustomTypeAdapter(CustomType.TOKEN, customTypeAdapter.tokenCustomAdapter)
.build()
可能出现什么问题?
答案 0 :(得分:-1)
我在通过android-client进行graphql调用时遇到类似的问题
我通过从我的graphql查询中删除所有的Dates类型(createAt,updatedAt等)解决了该问题。
此外,如果必须在gradle依赖项中添加“ _id”,请删除_id构建,然后运行
您还可以按照apollo-android官方文档添加自定义标量类型https://github.com/apollographql/apollo-android#custom-scalar-types
它应该完美运行