【发布时间】:2015-08-07 16:11:07
【问题描述】:
我在 Go 中实现了一个 Web 服务,它从外部服务返回一个 JSON 结构。返回对象后,它看起来像这样:
{"otherServiceInfoList":[],"action...
我的 Go Web 服务只是将 JSON 读取到一个切片中:
response, err := ioutil.ReadAll(resp.Body)
并将其返回给客户端:
w.Write(response)
响应在 Postman 中按原样显示,但 Fiddler 会按如下方式预先和附加响应:
34ee
{"otherServiceInfoList":[],"...
0
注意前面的34ee 和后面的0。
然后我被提升为转换响应:
“响应已编码,可能需要在检查前解码。”
接受提示删除返回原始 JSON。是 Go 的 w.write 方法应用了额外的字符,还是 Fiddler 特有的?
顺便说一句,我在写入缓冲区之前设置了以下标头:
w.Header().Set("Content-Type", "application/json; charset=UTF-8")
【问题讨论】:
-
重启程序后,JSON 对象前面会加上
34f7 -
你能发布一个完整的、最小的例子来重现这种行为吗?
-
看起来您看到的是 HTTP 分块响应
-
知道如何在 Spring-Boot RESTful 应用程序中删除它吗?