2016-09-06 6 views
1

さまざまなエラーケースを処理するswitch文にエラー応答コードを入れたいのですが、VolleyErrosからレスポンスコードを取得できますか?エラーを処理するスイッチケース付きのボレーエラーHTTP応答コード

エラー:

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:スイッチのみ < >応答コードを処理する必要があります。

答えて

1

statusCodeはintです。 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」を確認するために、NULLかどうかのチェックを入れる必要がありますがnullではありません。

if(error.networkResponse!= null){ 
    // switch code 
} 
関連する問題