凌空手柄onErrorResponse
问题描述:
我越来越状态400
和服务器提供了一些回应,在那里我可以得到消息凌空手柄onErrorResponse
@Override
public void onErrorResponse(VolleyError error) {
NetworkResponse errorRes = error.networkResponse;
Log.d(TAG, errorRes.statusCode+"");
}
我怎样才能得到消息的服务器给我。基本上除了200以外,还会给出errorresponse
。现在我可以在哪里获得我收到的数据?
errorRes.data
也给错误的信息。
答
如果您能够在服务器上点击api,这意味着将会调用OnResponse。 OnErrorResponse被调用,当一些凌乱的错误,如没有互联网连接或如果URL无效发生。
如果您想知道哪些消息来自服务器,请解析您在OnResponse中获得的响应。
答
试试这个:
@Override
public void onErrorResponse(VolleyError error) {
NetworkResponse errorRes = error.networkResponse;
String stringData = "";
if(errorRes != null && errorRes.data != null){
stringData = new String(errorRes.data,"UTF-8");
}
Log.e("Error",stringData)
}
答
您可以通过覆盖parseNetworkError
为以下(如果可用)解析错误消息:
@Override
protected VolleyError parseNetworkError(VolleyError volleyError) {
String json;
if (volleyError.networkResponse != null && volleyError.networkResponse.data != null) {
try {
json = new String(volleyError.networkResponse.data,
HttpHeaderParser.parseCharset(volleyError.networkResponse.headers));
} catch (UnsupportedEncodingException e) {
return new VolleyError(e.getMessage());
}
return new VolleyError(json);
}
return volleyError;
}
希望它能帮助!
事情是响应是当我正在做适当的请求,时间服务器给出状态码200,但如果我通过错误的参数然后它给400和它去onErrorResponse – andro
如果参数是错误的,该响应来自服务器端。 如果您在ErrorResponse中获得响应,则意味着存在其他一些错误,无论是互联网连接还是尝试打击api的方式。 –
然后当状态码不是200时,我可以得到响应? – andro