一尘不染

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

json

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

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

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


阅读 677

收藏
2020-07-27

共1个答案

一尘不染

在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>>

2020-07-27