java - Volley 不向 PHP 发送变量

标签 java php android android-volley

我正在尝试让 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/

相关文章:

Java使用PDFBox图像转换获取空白图像

javascript - 来自 WordPress 站点的 Valence API D2L/Brightspace API 调用

php - 使用字母范围查询 Eloquent 模型

android - 滚动 ListView 时应用程序崩溃

android - 选择(外键)表中没有对应行的行

android - 需要帮助来显示来电者信息

java - 允许用户调整 JTable 列的大小

java 。 REST 服务 + Jasper 报告。无法打印标签(或找不到)

java - 在java代码中添加一个条件,用户只能尝试4次

php - 检查字符串是否全是数字且长度为 10 个字符