2

我正在尝试使用 apollo-android 库与 graphql 服务器进行通信。问题是后端使用标头对请求进行身份验证,而我找不到添加它们的方法。同样在身份验证请求中,令牌是在标头中发送的,我找不到从响应中读取它的方法。

人们建议通过 OkHttpClient 中的拦截器设置身份验证标头,但这种方法不适用于我的情况,因为客户端必须在不同的请求中发送不同的标头集。

那么,在这种情况下有什么解决方法吗?我应该使用像 Retrofit 这样的简单休息客户端,还是应该在每个带有所需标头集的新请求上创建新的 ApolloClient 和 OkHttpClient 实例?或者也许还有其他解决方法?

4

1 回答 1

0

人们建议通过 OkHttpClient 中的拦截器设置身份验证标头,但这种方法不适用于我的情况,因为客户端必须在不同的请求中发送不同的标头集。

在接受不同标头的拦截器上具有 setter 方法和字段。ApolloClient在发出需要标头的请求之前调用这些 setter 方法。

或者,根据对拦截器可见的请求特征(例如,URL),教拦截器如何为不同的请求应用不同的标头。

于 2018-04-15T18:52:15.107 回答