【问题标题】:Volley string request is not working in KotlinVolley 字符串请求在 Kotlin 中不起作用
【发布时间】:2020-09-22 17:27:23
【问题描述】:

大家好,我被这个问题困扰了几个星期了,希望你们能帮我解决这个问题。 所以我有一个带有数据库的本地服务器(PHPMyadmin + MySQL),我有一个请求,我用 Postman 调用如下 http://localhost/WebApi/v1/?op=addBars 我通过这个请求传递了 4 个值 first_name,Last_name,电子邮件和通行证,它们将保存在数据库中,并且工作正常。 但是当我尝试在 Kotlin 中使用 Volley 将数据发送到数据库时:我没有得到任何答案,也没有错误 所以这就是我的 V1.php 的样子

case 'addBars':
                if(isset($_POST['Email']) && isset($_POST['Pass']) && isset($_POST['First_Name'])&& isset($_POST['Last_Name'])){
                    $db = new DbOperation(); 
                    if($db->createBars($_POST['Email'], $_POST['Pass'],$_POST['First_Name'], $_POST['Last_Name'])){
                        $response['error'] = false;
                        $response['message'] = 'Bars added successfully';
                    }else{
                        $response['error'] = true;
                        $response['message'] = 'Could not add Bars';
            }                  
                }else{
                    $response['error'] = true; 
                    $response['message'] = 'Required Parameters are missing';
                }
            break; 

这也是 DbOperation.php 中创建栏的样子


    public function createBars($Email,$Pass,$First_Name,$Last_Name){
        $stmt = $this->con->prepare("INSERT INTO Bars (Email, Pass,First_Name,Last_Name) VALUES (?,?,?,?)");
        $stmt->bind_param("ssss", $Email, $Pass,$First_Name,$Last_Name);
        if($stmt->execute())
            return true; 
        return false; 
    }

这也是我在 Kotlin 中使用 Volley 请求的方式

           val stringRequest = object : StringRequest(Request.Method.POST, EndPoints.URL_ADD_Bars,
                Response.Listener { response ->
                    try {
                        
                        val obj = (response)
                        Toast.makeText(applicationContext ,"test "+obj+"" , Toast.LENGTH_SHORT).show()

                       // Toast.makeText(applicationContext, obj.getString("message"), Toast.LENGTH_LONG).show()
                    } catch (e: JSONException) {
                        Toast.makeText(applicationContext, "response,"+response.toString()+"", Toast.LENGTH_LONG).show()
                        e.printStackTrace()
                    }
                },

                object : Response.ErrorListener {
                    override fun onErrorResponse(volleyError: VolleyError) {
                         Toast.makeText(applicationContext, "error,"+volleyError.toString()+"", Toast.LENGTH_LONG).show()

                    }
                })
            
            {
                @Throws(AuthFailureError::class)
                override fun getParams(): Map<String, String> {
                    val params = HashMap<String, String>()
                    params.put("Email",Email)
                    params.put("Pass",Pass)
                    params.put("First_Name",First_Name)
                    params.put("Last_Name",Last_Name)
                    return params
                }
        }

        //adding request to queue
        VolleySingleton.instance?.addToRequestQueue(stringRequest)}

这就是我的 EndPoints 的样子

object EndPoints {
    private val URL_ROOT = "https://192.130.180.209/WebApi/v1/?op="
    val URL_ADD_Bars = URL_ROOT + "addBars"
    val URL_GET_Bars = URL_ROOT + "getBars"
    val URL_Bars_info = URL_ROOT + "Bars_info"

    val URL_Bars_Listing = URL_ROOT + "Bars_Listing"

    val URL_Bars_Listing_name_adress = URL_ROOT + "Bars_Listing_name_adress"
    val URL_Bars_info_update_api = URL_ROOT + "Bars_info_update_api"

}


如果您能帮我解决这个问题,我将不胜感激 :) 如果您有任何问题,请联系我 我正在使用凌空:1.1.0 compileSdkVersion 29 buildToolsVersion "29.0.3"

【问题讨论】:

  • 你可以在服务器或主机上上传文件PHP吗?所以我可以测试?

标签: php json kotlin singleton android-volley


【解决方案1】:

大家好,我解决了我只是在端点中提供了错误的 IP 地址的问题

【讨论】:

    猜你喜欢
    • 2017-08-11
    • 2018-09-22
    • 1970-01-01
    • 2013-11-19
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    相关资源
    最近更新 更多