【问题标题】:How to get response data on Android using Apollo client for GraphQL if http code is not 200?如果http代码不是200,如何使用GraphQL的Apollo客户端在Android上获取响应数据?
【发布时间】:2019-05-29 12:27:15
【问题描述】:

我是在 Android 上使用 Apollo 客户端的 GraphQL 新手。我正在尝试通过 graphQL 突变在服务器上注册用户。

我调用突变,如果用户的数据无效,我会得到 http 代码 422:无法处理的实体,在这种情况下,我无法得到任何响应详细信息。我使用标准方式拨打电话:

.enqueue(object : ApolloCall.Callback<CreateUserMutation.Data>() {
                    override fun onFailure(e: ApolloException) {
                    }
                    override fun onResponse(response: 
Response<CreateUserMutation.Data>) {
                    }

在此之后,我进入了 onFailure 块。 ApolloException 仅包含 http 代码描述。但我想查看完整响应中的错误详细信息,我可以通过邮递员看到。我已经尝试过 com.apollographql.apollo.ApolloCall.Callback#onHttpError 回调,但是 networkResponse body = null。我在这里描述了这个问题,但没有解决我的问题: https://github.com/apollographql/apollo-android/issues/1166

【问题讨论】:

    标签: android http graphql apollo


    【解决方案1】:

    这样做的方法是检查ApolloException 是否为instanceof ApolloHttpException

    如果是,您可以从中获取throwable.rawResponse().code()

    如果不是,则表示不是服务器错误(可能是超时或其他错误)

    【讨论】:

      猜你喜欢
      • 2021-05-07
      • 2020-06-14
      • 2022-12-20
      • 1970-01-01
      • 2018-02-14
      • 2017-03-19
      • 2019-06-19
      • 2020-09-02
      • 2020-01-18
      相关资源
      最近更新 更多