Как добавить запрос тела в URL в Kotlin? - PullRequest
0 голосов
/ 13 сентября 2018

Вот мой код для запроса залпа: -

val searchRequest = object : JsonArrayRequest(Request.Method.GET,url,
        Response.Listener { response ->

            val result = response.toString()


        },
        Response.ErrorListener { error ->
            Toast.makeText(activity, "Error!",Toast.LENGTH_LONG)
                    .show()
            Log.d("ERROR",error.toString())
        })
{
    override fun getBody(): ByteArray {

       //   TODO add Body, Header section works  //////////

        return super.getBody()
    }

    override fun getBodyContentType(): String {
        return "application/json"
    }


    override fun getHeaders() : Map<String,String> {
        val params: MutableMap<String, String> = HashMap()
        params["Search-String"] = songName
        params["Authorization"] = "Bearer ${accessTx.text}"
        return params
    }
}
AppController.instance!!.addToRequestQueue(searchRequest)

Я хочу добавить эту информацию в разделе тела

video_id = "BDJIAH", audio_quality = "256"

вот пример для добавления вышеуказанной информации в следующем сегменте.

{"video_id": "ABCDE", "audio_quality": "256"}

По сути, ясталкиваюсь с проблемой в разделе ByteArray.Это не работает для меня.

1 Ответ

0 голосов
/ 13 сентября 2018

Вы можете использовать toByteArray () метод класса String в Kotlin.

Например:

val charset = Charsets.UTF_8
val byteArray = "SomeValue".toByteArray(charset)

Также попробуйте передать несколько значений в теле запроса следующим образом:

val requestBody =  "video_id = "+"ABCDE"+ "& audio_quality ="+ "256"
val charset = Charsets.UTF_8
val byteArray = requestBody.toByteArray(charset)
...