如何使用 OkHttp POST JSON 数据
How to POST JSON data using OkHttp
我在 Kotlin 中使用 OkHttp 将 POST JSON 数据发送到我的 REST API 端点。但是,JSONParser().parse(request) 给出了错误的请求错误。我认为我使用 OkHttp 传递数据的方式存在一些问题。这是相关代码:
val url = "http://10.0.2.2:8000/dummy/"
val JSON: MediaType? = MediaType.parse("application/json; charset=utf-8")
val JSONObjectString = "{\"name\":\"Mahesh\"}" //The data I want to send
var body:RequestBody = RequestBody.create(JSON, JSONObjectString)
val request = Request.Builder().post(body).url(url).build()
val client = OkHttpClient()
client.newCall(request).enqueue(object : Callback {
override fun onResponse(call: Call, response: Response) {
val tm = response?.body()?.string()
println(tm)
}
override fun onFailure(call: Call, e: IOException) {
Log.d("Failed", "FAILED")
e.printStackTrace()
}
})
在 print(request.data)
上给出:
{'name':'Mahesh'}
所以请求到达了终点,但是 JSONParser().parse(request) 给出了错误的请求错误,我想当数据格式不正确时会发生这种情况。我传递数据的方式有什么问题吗?
有效负载在 request.data 中,因此应该对其进行解析。
JSONParser().parse(request.data)
我在 Kotlin 中使用 OkHttp 将 POST JSON 数据发送到我的 REST API 端点。但是,JSONParser().parse(request) 给出了错误的请求错误。我认为我使用 OkHttp 传递数据的方式存在一些问题。这是相关代码:
val url = "http://10.0.2.2:8000/dummy/"
val JSON: MediaType? = MediaType.parse("application/json; charset=utf-8")
val JSONObjectString = "{\"name\":\"Mahesh\"}" //The data I want to send
var body:RequestBody = RequestBody.create(JSON, JSONObjectString)
val request = Request.Builder().post(body).url(url).build()
val client = OkHttpClient()
client.newCall(request).enqueue(object : Callback {
override fun onResponse(call: Call, response: Response) {
val tm = response?.body()?.string()
println(tm)
}
override fun onFailure(call: Call, e: IOException) {
Log.d("Failed", "FAILED")
e.printStackTrace()
}
})
在 print(request.data)
上给出:
{'name':'Mahesh'}
所以请求到达了终点,但是 JSONParser().parse(request) 给出了错误的请求错误,我想当数据格式不正确时会发生这种情况。我传递数据的方式有什么问题吗?
有效负载在 request.data 中,因此应该对其进行解析。
JSONParser().parse(request.data)