如何使用 kotlin 在 volley 请求中添加自定义标头

Ngu*_*uan 2 android kotlin android-volley

我有一个代码 Volley Code

 val queue = Volley.newRequestQueue(context)
 val stringRequest = StringRequest(Request.Method.GET, linkTrang,
            Response.Listener<String> { response ->
                mTextView.text = "Response is: " + response.substring(0,500));
            },
            Response.ErrorListener {  })
    {

    }
    queue.add(stringRequest)
Run Code Online (Sandbox Code Playgroud)

如何在此设置名为 Authorization 的标头?

Dan*_*ehl 24

我能够在 Kotlin 中使用以下方法做到这一点:

    val linkTrang = "YOUR URL"

    val queue = Volley.newRequestQueue(this)

    val stringRequest = object: StringRequest(Request.Method.GET, linkTrang,
        Response.Listener<String> { response ->
            Log.d("A", "Response is: " + response.substring(0,500))
        },
        Response.ErrorListener {  }) 
    {
        override fun getHeaders(): MutableMap<String, String> {
            val headers = HashMap<String, String>()
            headers["Authorization"] = "Basic <<YOUR BASE64 USER:PASS>>"
            return headers
        }
    }

    queue.add(stringRequest)
Run Code Online (Sandbox Code Playgroud)

object在构造请求之前使用关键字很重要,以便能够覆盖该getHeaders()方法。

  • 为“使用 object 关键字很重要”投票 (4认同)