ApolloParseException:无法解析http响应

时间:2018-01-19 17:30:54

标签: java android graphql apollo-client

使用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()

始终显示错误:enter image description here

可能出现什么问题?

1 个答案:

答案 0 :(得分:-1)

我在通过android-client进行graphql调用时遇到类似的问题

我通过从我的graphql查询中删除所有的Dates类型(createAt,updatedAt等)解决了该问题。

此外,如果必须在gradle依赖项中添加“ _id”,请删除_id构建,然后运行

您还可以按照apollo-android官方文档添加自定义标量类型https://github.com/apollographql/apollo-android#custom-scalar-types

它应该完美运行