Tôi đang cố gắng đăng một số thông số lên API đường ray bằng cách sử dụng Volley trong Android. Đây là mã:Volley không gọi getParams() cho yêu cầu POST chuẩn
Tôi đã thử với hai câu lệnh tường trình, một trong số getParams()
và một số khác trong số getHeaders()
. Một trong getHeaders()
được ghi lại trong khi một trong những khác không phải là. Tại sao cú volley lại bỏ qua getParams()
?
{
//full_name,email,password are private variables defined for this class
String url = "http://10.0.2.2:3000/users/sign_up.json" ;
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG, response.toString());
pDialog.hide();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
pDialog.hide();
}
}) {
@Override
public Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
//This does not appear in the log
Log.d(TAG,"Does it assign params?") ;
params.put("name", full_name.getText().toString());
params.put("email",email.getText().toString());
params.put("password", password.getText().toString());
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
//This appears in the log
Log.d(TAG,"Does it assign headers?") ;
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json; charset=utf-8");
return headers;
}
};
// Adding request to request queue
VHelper.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
}
Nó khá dễ dàng để giải quyết, kiểm tra câu trả lời của tôi [ở đây] (http://stackoverflow.com/a/24402403/1294681). – VinceStyling