如何将 header 添加到 volley 库的请求中

How to add a header to a request from volley library

我正在使用 kotlin 开发一个 android 应用程序,在这条路上我想使用请求从 restfull 服务器响应 ... 现在看看我从服务器请求它的代码,它是真的,但我不知道如何将 header 的参数添加到我的请求

fun sendCode(){
    val URL = "https://RestfulSms.com/api/MessageSend"
    val body : JSONObject = JSONObject()
    val header : JSONObject = JSONObject()
    body.put("Messages",messageText )
    body.put("MobileNumbers",PhoneNumber )
    body.put("LineNumber","***********")
    body.put("SendDateTime","")
    body.put("CanContinueInCaseOfError","false")

    val request :JsonObjectRequest = JsonObjectRequest(Request.Method.POST,
        URL,
        body,
        Response.Listener<JSONObject> { response ->
            Log.e(tag, response.toString())
        },
        Response.ErrorListener{ error ->
            Log.e(tag, error.message )
        })


    //request.headers.put("Content-Type","application/json")
    header.put("x-sms-ir-secure-token",tokenKey)
    queue.getCache().clear();
    queue.add(request)
}

请在提出此类问题之前搜索文档和其他 post。 Volley 是一个标准库,提供了很好的文档。

检查这个post

我发现了我的问题,解决方法如下

我只是将 object 替换为 JsonObjectRequest,然后使用覆盖 getHeaders 函数

            val request :JsonObjectRequest = object : JsonObjectRequest(Request.Method.POST,
            URL,
            body,
            Response.Listener<JSONObject> { response ->
                Log.e(tag, response.toString())
            },
            Response.ErrorListener{ error ->
                Log.e(tag, error.message )
            }) {

            @Throws(AuthFailureError::class)
            override fun getHeaders(): Map<String, String> {
                val headers = HashMap<String, String>()
                headers.put("Content-Type", "application/json");
                headers["x-sms-ir-secure-token"] = tokenKey
                return headers
        }