如何在 Kotlin 中使用 volley 将标题放在 url 中?

shi*_*oor 0 kotlin android-volley rx-kotlin kotlin-extension kotlin-android-extensions

我的代码-

val accessTokenRequest: JsonObjectRequest = JsonObjectRequest(Request.Method.GET, url,
            Response.Listener { response ->
            },
            Response.ErrorListener { error ->
                Toast.makeText(activity,error.toString(), Toast.LENGTH_LONG).show()
            }
    )

    AppController.instance!!.addToRequestQueue(accessTokenRequest)
Run Code Online (Sandbox Code Playgroud)

我要放置的标题 - “搜索”和“授权”

Abi*_*ash 6

尝试使用以下代码添加标题

val accessTokenRequest: JsonObjectRequest = object : JsonObjectRequest(
    Request.Method.GET, "", JSONObject(),
    Response.Listener<JSONObject?> {
        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
    }, Response.ErrorListener {
    TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}) {
    @Throws(AuthFailureError::class)
    override fun getHeaders(): Map<String, String> {
        var params: MutableMap<String, String>? = super.getHeaders()
        if (params == null) params = HashMap()
        params["Authorization"] = "Your authorization"
        //..add other headers
        return params
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:要从 java 生成 kotlin 代码,请尝试使用 Ctrl + Shift + Alt + K 或简单地将其复制粘贴到 kotlin 文件中。

  • 该代码会导致 java.util.AbstractMap.put 处出现 UnsupportedOperationException 错误。删除 getHeaders() 中的前 2 行并立即实例化一个新映射 val params: MutableMap&lt;String, String&gt; = HashMap() (3认同)