【问题标题】:Volley sends null parameters to server when using post methodVolley 使用 post 方法时向服务器发送空参数
【发布时间】:2020-02-10 11:19:53
【问题描述】:

我使用 volley 连接到 Wordpress 网站。它工作正常。但是当 PHP 更新到 PHP2.7 时,Volley 向服务器发送空参数。

MyPHP 代码是:

<?php
    require_once("../wp-load.php");
    require_once("class.aesCrypt.php");
    $tellenc = $_POST['username'];
    $passenc = $_POST['pass'];
    $serialdiviceenc= $_POST['serial'];

    $tell= $tellenc;
    $pass= $passenc;
    $serialdivice=$serialdiviceenc;
    $username=$tell.$serialdivice;
    var_dump($username);
    $output= [];
    $user_id = username_exists( $username );
    ...
    ?>

我像上面一样在 Postman 中检查了我的 php 代码。它从 Post Method 获得了 null 参数。

<?php
    require_once("../wp-load.php");
    require_once("class.aesCrypt.php");
    $tellenc = $_POST['username'];
    $passenc = $_POST['pass'];
    $serialdiviceenc= $_POST['serial'];
   ...
   ?>

当我的 PHP 代码像上面那样时,它在邮递员应用程序中可以正常工作。

但使用 Volley 在这两种情况下,它都会获得空参数。我非常谷歌搜索,但我无法修复它。如何解决它?现在我的问题是凌空将空参数发送到服务器。

我的 Java 代码是:

progressBar.setVisibility(View.VISIBLE);
flag=false;
String regurl = G.BaseURl+"/AndroidLoginUser.php";
Response.Listener<String> listener = new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {}
};
Response.ErrorListener errorListener = new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {}
};
StringRequest request = new StringRequest(Request.Method.POST, regurl, listener, errorListener) {
    @Override
    protected Map<String, String> getParams() throws com.android.volley.AuthFailureError {
        Map<String, String> params = new HashMap<>();
        params.put("username", txtUsername.getText().toString());
        params.put("pass", txtpass.getText().toString());
        params.put("serial",G.deviceSerial);
        return params;
    }
};
request.setShouldCache(false);
AppSingleton.getInstance(context).getRequestQueue().getCache().clear();
request.setRetryPolicy(new RetryPolicy() {
    @Override
    public int getCurrentTimeout() {
        return 50000;
    }

    @Override
    public int getCurrentRetryCount() {
        return 50000;
    }

    @Override
    public void retry(VolleyError error) throws VolleyError {}
});
AppSingleton.getInstance(context).addToRequestQueue(request);

【问题讨论】:

标签: java php android wordpress


【解决方案1】:

我通过在 PHP 代码中将 ' 替换为 " 来解决它。:D

$tellenc = $_POST["username"];
$passenc = $_POST["pass"];
$serialdiviceenc= $_POST["serial"];

【讨论】:

    猜你喜欢
    • 2015-11-18
    • 2020-03-18
    • 2015-06-14
    • 1970-01-01
    • 2015-09-12
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多