【问题标题】:ApolloParseException : failed to parse http responseApolloParseException : 无法解析 http 响应
【发布时间】:2018-06-29 00:21:20
【问题描述】:

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

这里是阿波罗客户端。

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

总是显示错误:

可能出了什么问题?

【问题讨论】:

标签: java android graphql apollo-client


【解决方案1】:

我在从 android-client 调用 graphql 时遇到了类似的问题

我通过从我的 graphql 查询中删除所有 Dates 类型(createAt、updateAt 等)解决了这个问题。

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

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

它应该可以完美运行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2019-03-16
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多