ApolloParseException : 无法解析 http 响应
Posted
技术标签:
【中文标题】ApolloParseException : 无法解析 http 响应【英文标题】:ApolloParseException : failed to parse http response 【发布时间】: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()
总是显示错误:
可能出了什么问题?
【问题讨论】:
可能重复:***.com/questions/39918814/… 你能解决这个问题吗? @MuM6oJuM6o 添加 httpLogger 以确保您收到的响应。 请看我的回答:***.com/a/55683846/3598837 【参考方案1】:我在从 android-client 调用 graphql 时遇到了类似的问题
我通过从我的 graphql 查询中删除所有 Dates 类型(createAt、updateAt 等)解决了这个问题。
此外,如果您必须将“_id”添加到您的 gradle 依赖项中,请删除 _id 构建,然后运行
您也可以按照官方apollo-android文档添加自定义标量类型https://github.com/apollographql/apollo-android#custom-scalar-types
它应该可以完美运行
【讨论】:
以上是关于ApolloParseException : 无法解析 http 响应的主要内容,如果未能解决你的问题,请参考以下文章
无法推送到 Heroku '致命:无法访问..无法解析主机:(无);提供节点名或服务名,或未知'
无法写入内容:无法延迟初始化角色集合,无法初始化代理 - 无会话