我怎样才能做到这一点?这是我在做的请求。
Fuel.get(url)
.timeout(TIMEOUT)
.body(myRequest.parameters!!, Charsets.UTF_8)
.responseString() { _, response, result ->
Log.e("result", "$result")
when (result) {
is Result.Success -> {
completionHandler(result.get(), null)
}
is Result.Failure -> {
Log.e("fail", "${response}")
completionHandler(null, Error(response.responseMessage))
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的回应是:
Response : Bad Request
Length : 122
Body : ({"message":"You have already booked that iceCream"})
Headers : (9)
Connection : [keep-alive]
Content-Length : [122]
Content-Type : [application/json; charset=utf-8]
Date : [Thu, 03 May 2018 07:33:21 GMT]
Server : [nginx/1.12.1]
Run Code Online (Sandbox Code Playgroud)
我想将正文消息作为我的错误返回。
正如本期所提到的。您可以使用 接收正文response.data,它返回ByteArray。因此,代码可能如下所示:
val myBody = String(response.data)
Run Code Online (Sandbox Code Playgroud)
另一种解决方案是禁用HTTP 代码验证器,可以通过以下方式实现:FuelManager.removeAllResponseInterceptors()
小智 4
如果您的代码使用awaitByteArrayResponseand getsResult<?, FuelError>>或FuelErrorobject,请尝试以下操作:
val (content, error) = result // Result<?, FuelError>>
val strContent = error.errorData.toString(Charsets.UTF_8)
| 归档时间: |
|
| 查看次数: |
4742 次 |
| 最近记录: |