Android JsonArrayRequest Post方法不起作用

Android JsonArrayRequest Post方法不起作用,android,post,android-volley,Android,Post,Android Volley,我以前没用过截击,所以我是这里的新手。我尝试使用Post参数执行JSONArrayRequest。 PHP脚本将检查这些参数,并使用JSON数组进行应答,该数组将显示在列表中。 但不知何故,Post参数无法发送。所以我的PHP脚本说缺少post参数 那么,我做错了什么,post参数没有发送 这是我的密码: private void getPersonsData(final String PhoneNr, final String Password) { String url = "htt

我以前没用过截击,所以我是这里的新手。我尝试使用Post参数执行JSONArrayRequest。 PHP脚本将检查这些参数,并使用JSON数组进行应答,该数组将显示在列表中。 但不知何故,Post参数无法发送。所以我的PHP脚本说缺少post参数

那么,我做错了什么,post参数没有发送

这是我的密码:

private void getPersonsData(final String PhoneNr, final String Password) {
    String url = "http://127.0.0.1:80/android_login_api/getmembers.php";
    JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Method.POST, url, null, new Response.Listener<JSONArray>() {
        @Override
        public void onResponse(JSONArray response) {
            try {
                //Adding a person in the list
                if (response.length() > 0) {
                    personList.clear();
                    for (int i = 0; i < response.length(); i++) {
                        JSONObject jsonObject = response.getJSONObject(i);
                        Person person = new Person();
                        if (!jsonObject.isNull("fullname")) {
                            person.name = jsonObject.getString("fullname");
                        }
                        if (!jsonObject.isNull("location")) {
                            person.location = jsonObject.getString("location");
                        }
                        personList.add(i, person);
                    }
                    mAdapter.notifyDataSetChanged();
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            VolleyLog.e("Error: ", error.getMessage());
        }
    })  {

        @Override
        protected Map<String, String> getParams() {
            // Posting parameters to login url
            Map<String, String> params = new HashMap<String, String>();
            params.put("phonenr", PhoneNr);
            params.put("password", Password);

            return params;
        }

    };

    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(jsonArrayRequest);
}
下面是我的PHP代码的一些部分:

getmembers.php
<?php
require_once 'include/DB_Functions.php';
$db = new DB_Functions();
$response = array("error" => FALSE);

if (isset($_POST['phonenr']) && isset($_POST['password'])) {  //this goes on false

// receiving the post params
$phonenr = $_POST['phonenr'];
$password = $_POST['password'];

$user = $db->getUserByPhonenrAndPassword($phonenr, $password);

[...]
如果有人发现我的错误,那就太好了

php中的普通$\u POST方法在截取中不起作用。你需要在你的php文件中这样做

$post = json_decode(file_get_contents("php://input"), true);
$my_value = $post['param1'];
param1是您在截击中输入的值

使用以下命令:

final Hashmap<String,String> param1 = new Hashmap<string,string>();
param1.put("param1",your value);
它对我有用。你可以试试

JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Method.POST, url, **new JSonObject(param1)**, new Response.Listener<JSONArray>() { . . . .. 

你能发布你的getmembers.php文件让我们看看你有什么吗?我已经添加了一部分php代码。这应该足够了@Sanyamjain您在哪里使用getParams?它只在“受保护的地图”中。我应该在什么地方用吗?也许在我的JsonArrayRequest的方法Post调用中@桑雅明