2
我正在使用排雷庫進行Android和jsonObject中的網絡調用,以便從服務器發送和獲取值。如何在凌亂庫中讀取響應頭的狀態碼和響應正文Android
在我的情況下,如果我發送正確的值,它會返回正確的json對象,但是如果我向服務器發送錯誤的輸入,它會返回401作爲請求標頭和響應正文並顯示錯誤消息。但是這並沒有顯示onResponse成功方法。
這裏是我的代碼
private void makeLoginReq() {
showProgressDialog();
Map<String, String> postParam = new HashMap<String, String>();
postParam.put("un", user_name.getText().toString());
postParam.put("p", password.getText().toString());
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.POST,
Server.URL+Server.FUNC_LOGIN, new JSONObject(postParam),
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("TAG", response.toString());
hideProgressDialog();
try {
if("0".equalsIgnoreCase(response.getString("status")))
{
startActivity(new Intent(ActivityLogin.this,ActivityHome.class));
}else if("1".equalsIgnoreCase(response.getString("status")))
{
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("TAG", "Error: " + error.networkResponse.statusCode);
hideProgressDialog();
Crouton.makeText(ActivityLogin.this, "Server Error Try again", Style.ALERT).show();
}
}) {
/**
* Passing some request headers
* */
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
headers.put("charset", "utf-8");
return headers;
}
};
// Adding request to request queue
AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
}
我需要的是讓在公共無效onResponse(JSONObject的響應)JSON響應{}方法。
任何人都可以幫助我解決這個問題嗎?
服務器的返回值僅爲JSON格式。但我沒有收到Onsuccess方法 – John 2015-02-06 11:01:34
,但您更改了回覆標題,我想您會在onErrorResponse – cn123h 2015-02-06 11:02:27
中得到回覆,並且非常感謝您的回答。但是這是可能的從錯誤中獲取JSONObject:我的意思是我怎麼能從onResponse得到響應體錯誤方法 – John 2015-02-06 11:08:10