2017-05-17 85 views
2

我正在發送服務器請求來處理響應和錯誤,我已經實現了接口。我只想知道如何處理如果「mResultCallBack == null」沒有編輯條件if(mResultCallBack!= null)。代碼如下: -如何處理來自服務器的響應在android中爲null?

public Context mContext; 
private IResult mResultCallBack; 

public CServerRequest(IResult mResultCallBack, Context context) { 
    this.mContext = context; 
    this.mResultCallBack = mResultCallBack; 
} 

public void postWalletRequest(final String requestType, String url, JSONObject jsonObject) { 
    try { 
     RequestQueue queue = Volley.newRequestQueue(mContext); 
     JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(url, jsonObject, new Response.Listener<JSONObject>() { 
      @Override 
      public void onResponse(JSONObject response) { 

       mResultCallBack.notifySuccess(requestType, response); 

      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 

       mResultCallBack.notifyError(requestType, error); 

      } 
     }); 
     jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(10000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
     queue.add(jsonObjectRequest); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 

}

和代碼接口

public void notifySuccess(String requestType,JSONObject response); 
public void notifyError(String requestType,VolleyError error); 




AsyncTask.execute(new Runnable() { 
     @Override 
     public void run() { 
      if (loginSessionManager.isLogin()){ 
       cServerRequest = new CServerRequest(mResultcallBack,mContext); 
        JSONObject jsonObject = null; 
       try { 
        jsonObject = new JSONObject(); 
        jsonObject.put(CRequestKey.AGENT_CODE, m_szMobileNumber.trim());// sending mobile no.(static right know becuse of ser side data on other is null 
        jsonObject.put(CRequestKey.PIN, m_szEncryptedPassword.trim());// same here as said above 
        Log.e(TAG,"Request::"+jsonObject.toString()); 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
       final String s_szWalletURL = CAPIStorage.IREWARDS_URL + CAPIStorage.WALLET_BALANCE_URL; 
       cServerRequest.postWalletRequest("POST",s_szWalletURL,jsonObject); 


      }else { 
       Log.e(TAG,"Not loggedin"); 
      } 
     } 
    }); 
+0

手柄根據您的需要。 – Denny

+0

只需將「吐司」作爲結果就像「請檢查您的連接,然後再試一次」。我認爲這對用戶來說更好。 –

+0

@NitinPatel是的,你可以顯示吐司.. – Kriti

回答

0
public Context mContext; 
private IResult mResultCallBack; 

public CServerRequest(IResult mResultCallBack, Context context) { 
    this.mContext = context; 
    this.mResultCallBack = mResultCallBack; 
} 

public void postWalletRequest(final String requestType, String url, JSONObject jsonObject) { 
    try { 
     if(jsonObject.getJSONArray.length() == 0) { 

    System.out.println("JSONArray is null");  
} 
else{ 
     System.out.println("JSONArray is not null"); 
     //parse your string here   


     RequestQueue queue = Volley.newRequestQueue(mContext); 
     JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(url, jsonObject, new Response.Listener<JSONObject>() { 
      @Override 
      public void onResponse(JSONObject response) { 

       mResultCallBack.notifySuccess(requestType, response); 

      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 

       mResultCallBack.notifyError(requestType, error); 

      } 
     }); 
     jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(10000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
     queue.add(jsonObjectRequest); 
    } 
} catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 
相關問題