当前位置: 首页 > 面试题库 >

从响应获取标头(Retrofit / OkHttp客户端)

洪涵亮
2023-03-14
问题内容

我正在使用OkHttp客户端和Jackson的Retrofit进行Json序列化,并想获取响应的标头。

我知道我可以扩展OkClient并拦截它。但这是在反序列化过程开始之前进行的。

我基本上需要的是将标头与反序列化的Json Object一起使用。


问题答案:

在Retrofit 1.9.0中,如果您使用接口的回调异步版本,

@GET("/user")
void getUser(Callback<User> callback)

然后您的回调将收到一个Response对象

    Callback<User> user = new Callback<User>() {
        @Override
        public void success(User user, Response response) {

        }

        @Override
        public void failure(RetrofitError error) {

        }
    }

其中有一个方法叫做 getHeaders()

    Callback<User> user = new Callback<User>() {
        @Override
        public void success(User user, Response response) {
            List<Header> headerList = response.getHeaders();
            for(Header header : headerList) {
                Log.d(TAG, header.getName() + " " + header.getValue());
            }
        }

对于Retrofit 2.0的界面,您可以使用进行操作Call<T>

对于Retrofit 2.0的Rx支持,您可以使用
Observable<Result<T>>



 类似资料:
  • 我正在调用一个endpoint,在该endpoint,我需要的信息将在响应头中返回(https://keycloak.discourse.group/t/rest-api-create-user-no-user-identifier-in-response/1964/4)。如果我使用Quarkus REST客户端(https://Quarkus.io/guides/rest-client)如何检索

  • 我在OkHttp客户端和Jackson上使用reform进行Json序列化,并希望获得响应的头。 我知道我可以扩展OkClient并拦截它。但这发生在反序列化过程开始之前。 我基本上需要的是获取头文件和反序列化的Json对象。

  • 我最近开始在registfit/okhttp上遇到问题。每当应用程序执行一个请求时,它就会崩溃,并出现错误:

  • 问题内容: 好的,因此我可以使用访问HTTP ajax响应标头 但似乎没有日期,尽管它在那里: 而代码只显示了这一点: 这是ajax调用: 有没有办法可以在响应头中获取日期? 问题答案: 这有帮助:

  • 我需要从图像获得http响应头。如何为来自Glide的每个请求创建拦截器?有必要创建一个滑翔模块吗?

  • 问题内容: 有什么方法可以获取原始响应的HTTP标头? 该方法对我不起作用,因为服务器吐出了多个“ Set-Cookie”,其中一些丢失了。 问题答案: 该方法对我不起作用 您是在的情况下问这个的吗?不可以,无法使用原始HTTP响应标头。您需要退回到低级的Socket编程。这是一个SSCCE,只需复制“ 粘贴 ”即可运行它。 为了避免每个尝试此代码片段的人都使SO过载,输出如下所示: 要了解有关以