我使用 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/