当从服务器返回 404 响应时,Volley 会返回错误,即使该 404 响应包含基于 json 的错误代码。它不会解析包含 jason { code: resourceNotFound, msg:message_index } 的 404 响应
有没有办法让 Volley 处理 404 消息中的 JSon?当找不到资源时,我正在集成的服务会返回 404。
如果您收到 404 响应,它应该进入您设置的任何错误侦听器。您在错误侦听器中获得一个 VolleyError 对象。您可以从此对象获取网络响应,然后从响应正文获取数据。它以 char 数组形式给出,因此您需要自己将其转换为其他内容。
下面的代码片段是一个简单的请求,但您需要输入自己的 URL。
StringRequest request = new StringRequest( Request.Method.GET, "yourURL", new Response.Listener<String>() {
@Override
public void onResponse( String s ) {
//Do whatever
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse( VolleyError volleyError ) {
try {
String responseBody = new String( volleyError.networkResponse.data, "utf-8" );
JSONObject jsonObject = new JSONObject( responseBody );
} catch ( JSONException e ) {
//Handle a malformed json response
} catch (UnsupportedEncodingException error){
}
}
}
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)