-1
A
回答
0
您可以自定义请求按照使用
public class CustomRequest extends Request<JSONObject> {
private Response.Listener<JSONObject> listener;
private Map<String, String> params;
private String check_url;
private Map<String, String> headers = new HashMap<String, String>();
public CustomRequest(String url, Map<String, String> params,
Response.Listener<JSONObject> reponseListener,
Response.ErrorListener errorListener) {
super(Method.GET, url, errorListener);
this.listener = reponseListener;
this.params = params;
check_url = url;
}
public CustomRequest(int method, String url, Map<String, String> params,
Response.Listener<JSONObject> reponseListener, Response.ErrorListener errorListener) {
super(method, url, errorListener);
this.listener = reponseListener;
this.params = params;
check_url = url;
}
protected Map<String, String> getParams()
throws com.android.volley.AuthFailureError {
return params;
};
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
return headers;
}
@Override
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
try {
String jsonString = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
return Response.success(new JSONObject(jsonString),HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (JSONException je) {
return Response.error(new ParseError(je));
}
}
//In your extended request class
@Override
protected VolleyError parseNetworkError(VolleyError volleyError){
if(volleyError.networkResponse != null && volleyError.networkResponse.data != null){
VolleyError error = new VolleyError(new String(volleyError.networkResponse.data));
NetworkResponse response = volleyError.networkResponse;
Log.e("tag","parseNetworkError is ! null ");
Log.e("tag","parseNetworkError status code : " + response.statusCode);
Log.e("tag","parseNetworkError message : " + error.getLocalizedMessage());
//volleyError = error;
}else{
Log.e("","parseNetworkError is null ");
if (volleyError instanceof TimeoutError) {
Log.e("tag","TimeoutError:parseNetworkError:" + volleyError.getLocalizedMessage());
}else if (volleyError instanceof NoConnectionError) {
Log.e("tag","NoConnectionError:parseNetworkError:" + volleyError.getLocalizedMessage());
} else if (volleyError instanceof AuthFailureError) {
Log.e("tag","AuthFailureError:parseNetworkError:" + volleyError.getLocalizedMessage());
} else if (volleyError instanceof ServerError) {
Log.e("tag","ServerError:parseNetworkError:" + volleyError.getLocalizedMessage());
} else if (volleyError instanceof NetworkError) {
Log.e("tag","NetworkError:parseNetworkError:" + volleyError.getLocalizedMessage());
} else if (volleyError instanceof ParseError) {
Log.e("tag","ParseError:parseNetworkError:" + volleyError.getLocalizedMessage());
}
}
return volleyError;
}
@Override
protected void deliverResponse(JSONObject response) {
// TODO Auto-generated method stub
listener.onResponse(response);
}
}
相关问题
- 1. android post请求使用volley
- 2. Android Volley请求不响应
- 3. 使用Android Volley的HTTPS请求
- 4. Volley POST请求
- 5. Android Volley请求使用OAuth2授权
- 6. 使用Volley的JSON请求
- 7. Volley同步请求
- 8. Android Volley - 自定义请求中的SQLite操作请求
- 9. Android Volley请求身份onErrorResponse部分
- 10. Android Volley请求内容类型
- 11. 在Android Volley中取消NetworkImageView请求
- 12. Android Volley服务器XML请求
- 13. Android Volley POST请求返回错误400(错误请求)
- 14. 使用Google Volley发送请求参数
- 15. 如何使用Volley解析JSON请求?
- 16. 使用Volley的HTTP Post请求
- 17. Store Volley请求数据
- 18. Volley PUT图像请求
- 19. Volley Post GSON请求问题
- 20. 使用Volley GET请求参数
- 21. 如何使用Android中的Volley发送Post请求?
- 22. 使用Android Volley致电Laravel时的空请求
- 23. Android - Volley - 请求GET使用标题不起作用
- 24. 如何在android中使用volley库调用graphql post请求
- 25. 使用Volley执行单个请求
- 26. Volley Post请求不适用于API
- 27. Volley GET请求冻结应用
- 28. 使用Volley从http请求返回值
- 29. 如何使用volley请求protobuf?
- 30. 如何使用Volley发送POST请求
这上面要求我可以用请求的图像,JsonArray也..? –
您需要根据您的使用情况自定义 –
然后我必须为每项权利编写custome请求。例如CustomImageRequest,CustomJsonArrayRequest。 –