我正在Android中使用Retrofit调用API。并以 ResponseBody 的形式从 POST 方法获取响应。
我的API调用如下-
@POST("api/auth/store-login")
fun postLoginDetail(@Body userData: RequestBody):Call<ResponseBody>
现在,我想将此调用的响应转换为 JSONObject,以便我可以在代码中使用它。
我做了这个-
retrofitCall.enqueue(object : Callback<ResponseBody?> {
override fun onResponse(call: Call<ResponseBody?>, response: Response<ResponseBody?>) {
Log.e("response","responseNew ${response.body().toString()}")
val responseBody = JSONObject("{${response.body().toString()}}")
}
但 Log.e 返回时它不起作用 ->
responseNew okhttp3.ResponseBody$1@6015676
因此它无法转换为 JSON,因为 response.body().to()String
不是字符串或 JSON 格式。
我在 PostMan 中的实际回复是这样的 - {“客户端”:[“客户端1”,“客户端2”],“has_multiple_clients”:true}
尝试将
response.body().toString()
替换为 response.body?.string()
但请确保保存结果,因为 .string()
在被调用后会清除信息,使得以后对 response.body 的调用不会返回任何结果