我正在使用OkHttp客户端和Jackson的Retrofit进行Json序列化,并想获取响应的标头。
我知道我可以扩展OkClient并拦截它。但这是在反序列化过程开始之前进行的。
我基本上需要的是将标头与反序列化的Json Object一起使用。
在Retrofit 1.9.0中,如果您使用接口的回调异步版本,
@GET("/user") void getUser(Callback<User> callback)
然后您的回调将收到一个Response对象
Response
Callback<User> user = new Callback<User>() { @Override public void success(User user, Response response) { } @Override public void failure(RetrofitError error) { } }
其中有一个方法叫做 getHeaders()
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>。
Call<T>
对于Retrofit 2.0的Rx支持,您可以使用 Observable<Result<T>>
Observable<Result<T>>