我试图在Volt StringRequest中创建一个包含Kotlin中自定义参数的字符串,但是我的getParams方法没有被调用。
我最终想要完成的是发出一个等效于以下curl命令的请求:
curl -X GET http://novaclean.test/api/home \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"api_token": "2ff52db35e359b02e83f8f45910f8386883c3190c3818d8fd6b6a4dec345"}'
我已经写了覆盖getHeaders和getParams的请求,但是从未调用过我的getParams方法,所以我没有得到想要的响应(如果没有给我的api_token,我会得到401后端)
我的代码:
val stringRequest = object: StringRequest(Request.Method.GET, "http://novaclean.test/api/home",
object: Response.Listener<String>{
override fun onResponse(response: String?) {
Log.d("Response",response)
}
},
object : Response.ErrorListener{
override fun onErrorResponse(error: VolleyError?) {
Log.d("Error",error.toString())
}
}){
override fun getHeaders(): Map<String, String> {
val headers = HashMap<String, String>()
headers.put("Content-Type", "application/json")
headers.put("Accept","application/json")
return headers
}
override fun getParams(): MutableMap<String, String> {
val params = HashMap<String, String>()
params["api_token"] = apiToken
return params
}
}
RequestQueueSingleton.getContextlessInstance().addToRequestQueue<String>(stringRequest)
我希望调用getParams()函数来将我的api令牌传递给我的请求,但是使用调试并在其中放置断点,我可以看到它从未被调用。