You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Fuel请求出现错误时获取响应体?

获取Fuel错误请求的响应体

好问题!你已经在日志里看到了响应体的片段,说明response对象里已经包含了错误响应的完整内容,只需要正确提取就行。

在Fuel中,当请求失败(Result.Failure)时,response参数依然包含服务器返回的响应信息,包括响应体。你可以通过response.body()方法获取响应体,再转换成字符串格式。

修改你的代码如下,重点看Result.Failure分支的处理:

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 -> { 
 // 提取错误响应体
 val errorBody = response.body()?.asString(Charsets.UTF_8)
 Log.e("fail", "Response: ${response}, Error Body: ${errorBody ?: "无响应体"}")
 
 // 可以把错误响应体也传给completionHandler,方便上层处理
 val error = Error("${response.responseMessage} | 错误详情: ${errorBody ?: "未知"}")
 completionHandler(null, error) 
 } 
 } 
 }

关键说明:

  • response.body()返回ResponseBody?类型,所以要用?.安全调用避免空指针
  • asString(Charsets.UTF_8)把响应体转换成UTF-8编码的字符串,确保中文等特殊字符显示正常
  • 你可以根据需求把错误响应体用于日志打印、错误提示或者后续的异常处理逻辑

内容的提问来源于stack exchange,提问作者Mikael Quick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:34:54