http - 如何避免在分块传输编码中发送 HTTP 响应
问题描述
我正在编写一个 HTTP 服务器,它有一个端点,它只是从文件系统中读取一个文件并在 HTTP 响应中回复。
r.GET("/fs/:id/:filename", func(c *gin.Context) {
...
data, err := ioutil.ReadFile(fpath)
if err != nil {
render.Render(w, r, routes.NewErrNotFound(err))
return
}
c.Writer.Write(data)
}
它当前正在使用分块传输编码进行响应。使用分块传输,服务器不会Content-Length
。使用此 API 的低功耗设备无法提前分配缓冲区。它不好处理。
还有另一种传输文件的方法,我该如何控制?
解决方案
推荐阅读
- c# - 如何读取 .TDAT 文件?
- macos - WxWidgets Build on OSX 10.15.4 错误(尝试不同的 SDK)
- javascript - 如何在 React 的主组件中的 onClick 事件中显示来自子组件的相应元素?
- nearprotocol - 近协议如何区分合约?
- .net - Oracle做参数可以防止SQL注入吗?
- java - Java GRPC ServerBuilder 与 NettyServerBuilder
- sql - 为 2000 年 12 月租用的汽车选择品牌和型号?
- assembly - 为什么buf的地址是0x12而不是10?
- r - 在data.frame R中添加多行
- mysql - 外键约束格式错误