我正在尝试使用 Volley
库将数据发送到服务器,但它给我一个错误
“输入结束于的字符0”
这是我的代码
public void postPrams(View view) {
String tag_json_obj = "json_obj_req";
String url = "http://Urlhere.com/register.php";
final ProgressDialog pDialog = new ProgressDialog(this);
pDialog.setMessage("Loading...");
pDialog.show();
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
text.setText("done Post : "+response);
pDialog.hide();
Toast.makeText(getApplication(),"Done",Toast.LENGTH_LONG).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("erorr", "Error: " + error.getMessage());
Toast.makeText(getApplication(),error.getMessage().toString(),Toast.LENGTH_LONG).show();
pDialog.hide();
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("first_name","Anwar");
params.put("last_name","Samir");
params.put("age", "1000");
params.put("country", "egypt");
params.put("city","le");
params.put("street", "10sq");
params.put("mobile_no", "0100000");
params.put("login_name", "Asi");
params.put("password", "123qwe");
return params;
}
};
AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
}
请帮我看看为什么会这样。
最佳答案
看看 Volley 的 source
public JsonObjectRequest(int method, String url, JSONObject jsonRequest,Listener<JSONObject> listener, ErrorListener errorListener)
您在 jsonRequest
的位置传递 null
意味着实际上您没有通过 POST 请求传递任何数据。因此出现错误:"end of input at character 0 of
。尝试将您的代码更改为
public void postPrams(View view) {
String tag_json_obj = "json_obj_req";
String url = "http://Urlhere.com/register.php";
final ProgressDialog pDialog = new ProgressDialog(this);
pDialog.setMessage("Loading...");
pDialog.show();
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
url, getParams(),
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
text.setText("done Post : "+response);
pDialog.hide();
Toast.makeText(getApplication(),"Done",Toast.LENGTH_LONG).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("erorr", "Error: " + error.getMessage());
Toast.makeText(getApplication(),error.getMessage().toString(),Toast.LENGTH_LONG).show();
pDialog.hide();
}
});
AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
}
private JSONObject getParams(){
JSONObject params = new JSONObject();
params.put("first_name","Anwar");
params.put("last_name","Samir");
params.put("age", "1000");
params.put("country", "egypt");
params.put("city","le");
params.put("street", "10sq");
params.put("mobile_no", "0100000");
params.put("login_name", "Asi");
params.put("password", "123qwe");
return params;
}
关于Android - Volley 无法将我的参数发送到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35602366/