Android Volley访问HTTP响应头字段

9
我该如何使用Volley访问HTTP响应头字段,例如ETag?使用HttpUrlConnection时,我只需执行conn.getHeaderField("ETag")就可以了。
谢谢。
2个回答

26

您可以对 Request (或其任何子类)进行子类化,并覆盖 parseNetworkResponse 方法:

@Override
protected Response<Bitmap> parseNetworkResponse(NetworkResponse response) {
    Map<String, String> responseHeaders = response.headers;
}

你是对的。但是Volley添加了一些额外的头部键值。有没有一个过滤器只获取服务器头部? - user2362956

5
您可以扩展Request类。然后在实现parseNetworkResponse(NetworkResponse response)方法时,您可以访问response.headers中的标头值。因此,您可以像这样访问ETag标头:response.headers.get("ETag")。我的做法是将此标头值添加到响应对象中,如response.setETag(etag),然后我只需在Response.success(response, null)中返回它。响应对象将被传递到deliverResponse(E response),在那里您可以将其发送到某些侦听器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接