【发布时间】:2016-09-17 10:25:22
【问题描述】:
给定任意 volley 请求,无论成功/失败,我如何捕获响应标头和 statusCode?p>
尝试/想法:
-
JsonResponseRequest(gist,未成年人edit of this) - 从 2013 年开始尝试在 volley-users 上关注 Accessing all response headers,包括 github repo:android-volley/add_response_headers
- 调查了
getHeaders的使用,但这似乎只是为了请求 -
GsonRequestAndroid 教程中的示例 -
- 也许有某种方法可以重写它以返回一个包含
response.data、标题和response.statusCode的元组?
- 也许有某种方法可以重写它以返回一个包含
:
@Override
protected Response parseNetworkResponse(NetworkResponse response) {
return Response.success(response.statusCode,
HttpHeaderParser.parseCacheHeaders(response));
}
编辑:澄清一下,我有一个简单的tuple 类:
public final class ErrResStatusHeaders<E, R> {
public final E error;
public final R result;
public final int statusCode;
public final Map<String, String> headers;
在我的Activity:
@Override
protected ErrResStatusHeaders<String,JSONObject> doInBackground(Void... params) {
// futures instantiated and utility function(s) called here
[...]
@Override
protected void onPostExecute(final ErrResStatusHeaders<String,JSONObject> er_res)
实用函数签名示例:
public ErrResStatusHeaders<String, JSONObject> register_or_login(
final HashMap<String, String> data,
final RequestFuture<JSONObject> register_future,
final RequestFuture<JSONObject> login_future) {
【问题讨论】:
-
如果不管
JSONObject或String或没有正文(即:任何其他http 方法),它都能正常工作,并且允许与RequestFuture一起使用:)
标签: java android inheritance http-headers android-volley