我正在尝试让 volley 与 php 脚本一起工作,基本上通过 volley 向 php 提交一些数据,然后从数据库中选择并返回结果,但是我什至在努力从 android 获取变量以提交给 php .我得到的错误表明在运行 php 时变量为空,因此它们没有正确提交 这是 php 错误
PHP Notice: Undefined index: name
当我尝试返回变量 name
时,它返回为 null
这是php
$iName = $_POST['name'];
$iEmail = $_POST['email'];
$iPassword = $_POST['password'];
$iVerifyPassword = $_POST['verify_password'];
$response = array('code' => "1", 'message' => $iName);
echo json_encode($response);
exit;
这里是相关的android
HashMap<String, String> params = new HashMap<String, String>();
params.put("name", sName);
params.put("email", sEmail);
params.put("password", sPassword);
params.put("verify_password", sVerifyPassword);
JsonObjectRequest req = new JsonObjectRequest(
jsonUrl, new JSONObject(params),
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
VolleyLog.v("Response:%n %s", response.toString(4));
int code = response.getInt("code");
String message = response.getString("message");
if (code == 1) {
//Success go to verify
Toast.makeText(getActivity().getApplicationContext(),
message,
Toast.LENGTH_LONG).show();
} else if (code == 2) {
Toast.makeText(getActivity().getApplicationContext(),
message,
Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getActivity().getApplicationContext(),
"Network Error",
Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.e("Error: ", error.getMessage());
}
}
);
// add the request object to the queue to be executed
AppController.getInstance().addToRequestQueue(req, tag_json_obj);
最佳答案
JsonObjectRequest
不会将您的参数提交给服务器,这会导致您的问题。很多人都问过这种问题,我的另一个answer可以让你更清楚为什么。
关于java - Volley 不向 PHP 发送变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27284195/