我想将错误响应代码放入要处理各种错误情况的switch语句中。如何从VolleyErros
获取响应代码。
错误:
E/Volley: [205] BasicNetwork.performRequest: Unexpected response code 409 for https://api.abc.com:3211/newuser
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if(error != null && error.getMessage() != null)
{
Log.e("Response error", error.getMessage());
}
switch (error.toString()){
case "409" : errorBox.setText("username already exists");
break;
case "410" : errorBox.setText("email already exists");
break;
case "411" : errorBox.setText("xyz already exists");
break;
case "413" : errorBox.setText("abc already exists");
break;
case "414" : errorBox.setText("username invalid ");
break;
default :
Log.d(TAG, "onErrorResponse: "+error.toString());
break;
}
}
}
P.S .: 交换机应仅处理< 409 >响应代码。
最佳答案
使用int的statusCode
。 docs
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if(error != null && error.getMessage() != null)
{
Log.e("Response error", error.getMessage());
}
switch (error.networkResponse.statusCode){
case 409 : errorBox.setText("username already exists");
break;
case 410 : errorBox.setText("email already exists");
break;
case 411 : errorBox.setText("xyz already exists");
break;
case 413 : errorBox.setText("abc already exists");
break;
case 414 : errorBox.setText("username invalid ");
break;
default :
Log.d(TAG, "onErrorResponse: "+error.toString());
break;
}
}
}
您还应该进行无效检查,以确认“networkResponse”不为空。
if(error.networkResponse!= null){
// switch code
}
关于json - 检索并使用Volley错误HTTP响应代码和开关大小写来处理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39341257/