समस्या बयान:एंड्रॉयड वॉली - BasicNetwork.performRequest: अप्रत्याशित प्रतिक्रिया कोड 400
मैं एक REST API का है कि विभिन्न HTTP स्थिति कोड के लिए एक JSON ऑब्जेक्ट वापस आ जाएगी का उपयोग करने की कोशिश कर रहा हूँ (400, 403, 200 आदि) वॉली का उपयोग करना
200 से अधिक किसी भी HTTP स्थिति के लिए, ऐसा लगता है कि 'अप्रत्याशित प्रतिक्रिया कोड 400' एक समस्या है। क्या किसी के पास इस 'त्रुटि' को बाईपास करने का कोई तरीका है?
कोड:
protected void getLogin() {
final String mURL = "https://somesite.com/api/login";
EditText username = (EditText) findViewById(R.id.username);
EditText password = (EditText) findViewById(R.id.password);
// Post params to be sent to the server
HashMap<String, String> params = new HashMap<String, String>();
params.put("username", username.getText().toString());
params.put("password", password.getText().toString());
JsonObjectRequest req = new JsonObjectRequest(mURL, new JSONObject(
params), new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONObject obj = response
.getJSONObject("some_json_obj");
Log.w("myApp",
"status code..." + obj.getString("name"));
// VolleyLog.v("Response:%n %s", response.toString(4));
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.w("error in response", "Error: " + error.getMessage());
}
});
// add the request object to the queue to be executed
AppController.getInstance().addToRequestQueue(req);
}
मेरे पास मेरी क्वेरी स्ट्रिंग में "é" वर्ण था। मेरे सभी पैरामीटर एन्कोड करने के बाद काम किया। – Kiran