如何使用kotlin中的volley库获取信息

时间:2017-11-21 19:45:06

标签: kotlin android-volley

我在服务器上有一个php文件,我必须获取信息,但我不知道如何将参数传递给查询。

例如,如果我有这个查询:SELECT * FROM accounttable WHERE idaccount = 1,我想将此1作为参数传递,我该怎么办?

 val stringRequest = StringRequest(Request.Method.POST, URL, Response.Listener<String>{ s ->
        try {

                val array = JSONArray(s)

                for (i in 0..array.length() - 1) {
                    val objectAccount = array.getJSONObject(i)
                    val account = Account(
                            objectAccount.getString("accountplace"),
                            objectAccount.getString("useraccount"),
                            objectAccount.getString("accountpass"))

                    listAccounts.add(account)

                }


        }catch (e: JSONException){
            e.printStackTrace()
        }
    }, Response.ErrorListener { error: VolleyError? -> Log.e("error", "error")  })

    val  requesQueue = Volley.newRequestQueue(this)
    requesQueue.add<String>(stringRequest)

1 个答案:

答案 0 :(得分:7)

您需要覆盖Request上的getParams()方法。为了做到这一点,你可以子类StringRequest,或者创建一个object expression(类似于Java中的anonymous inner class);如下图所示。

val stringRequest = object : StringRequest(Request.Method.POST, URL, Response.Listener { s ->
    // Your success code here
}, Response.ErrorListener { e ->
    // Your error code here
}) {
    override fun getParams(): Map<String, String> = mapOf("idaccount" to "1")
}