【问题标题】:Unable to send data to server using volley android无法使用 volley android 向服务器发送数据
【发布时间】:2016-06-12 18:08:49
【问题描述】:

我想使用 volley 创建一个用户注册页面,但我无法将数据发送到服务器。这是我第一次使用截击。我已经包含了所有权限并且服务器也正常运行,我只是无法将数据发送到在线数据库。

当我运行它时,它给出了以下消息:“警告 mysqli prepare() 期望参数 1 是 mysqli,在 home 中给出布尔值......”

请帮忙。 这是我的安卓代码: 用户类包含姓名、用户名、手机、密码等字符串。

private void registerUser(final User user) {
    StringRequest stringRequest = new StringRequest(Request.Method.POST, SERVER_ADDRESS + "Register.php",
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Toast.makeText(Register.this,response,Toast.LENGTH_LONG).show();
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(Register.this,error.toString(),Toast.LENGTH_LONG).show();
                }
            }){
        @Override
        protected Map<String,String> getParams(){
            Map<String,String> params = new HashMap<String, String>();
            params.put("name",user.name);
            params.put("username", user.username);
            params.put("mobile", user.mobile);
            params.put("password", user.password);
            Log.d(name+username+"her", "her");
            return params;
        }
    };

    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(stringRequest);

}
}

这是 php 文件:

 <?php

if($_SERVER['REQUEST_METHOD']=='POST'){
$con=mysqli_connect("localhost","dbName","pass","userName");

$name = $_POST["name"];
$username = $_POST["username"];
$mobile = $_POST["mobile"];
$password = $_POST["password"];

$statement = mysqli_prepare($con, "INSERT INTO UserDetails (name, username, mobile, password) VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($statement, "ssss", $name, $username, $mobile, $password);
mysqli_stmt_execute($statement);
echo $name, $username, $mobile, $password;
mysqli_stmt_close($statement);

mysqli_close($con);}
 ?>

【问题讨论】:

    标签: php android android-volley android-studio-2.0


    【解决方案1】:

    在向队列添加任何请求之前,您需要启动队列。

     RequestQueue requestQueue = Volley.newRequestQueue(this);
     requestQueue.start()
     requestQueue.add(stringRequest);
    

    请确保只调用一次 start()。因此创建一个单例类 VolleyManager,当你创建这个类的一个实例时,它应该创建一个请求队列并启动它。对于每个 API 调用,只需调用 VolleyManager.getInstance().getQueue().add(stringRequest)

    【讨论】:

      【解决方案2】:

      添加

      全局$con

      在你的 php 文件中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-12
        • 2023-03-23
        • 2017-06-15
        • 1970-01-01
        • 1970-01-01
        • 2015-06-14
        • 2018-02-16
        • 1970-01-01
        相关资源
        最近更新 更多