java - Volley使用post方法时向服务器发送空参数

标签 java php android wordpress

我使用 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 方法获取空参数。

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

当我的 PHP 代码如上面所示时,它在 postman 应用程序中可以正常工作。

但是对于 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);

最佳答案

我通过在 PHP 代码中将 ' 替换为 "解决了这个问题。:D

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

关于java - Volley使用post方法时向服务器发送空参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60149303/

相关文章:

java - 简单问题 - 在 Java 中更改位

java - 从android中的xml文件中随机生成问题并且不重复

java - 如何知道客户端是否已经完成文件下载

android - Netmera Android SDK 分页

java - 相同返回类型的多个 Jackson 序列化程序

php - 将具有相同键的键值对添加到数组中

php - 单击按钮时而不是加载页面时将数据添加到 MySQL

php - 将多维数组变成单个数组?

android - 如何设置 Shadow-cljs 以使用 Cordova + Clojurescript 重新加载代码?

java - 未触发dispatchPopulateAccessibilityEvent