如果我有一个用于 POST 请求的基本 http 处理程序,如果有效负载大于 100 KB,我该如何停止处理?据我了解,在我的 POST 处理程序中,服务器在后台传输 POSTED 数据。但是如果我尝试访问它,它会阻止正确吗?如果大小超过 100 KB,我想停止处理。
2 回答
德玛西亚99
TA贡献1770条经验 获得超3个赞
我相信您可以简单地检查http.Request.ContentLength
param 以了解已发布请求的大小,然后再决定是否继续或如果大于预期则返回错误。
红颜莎娜
TA贡献1842条经验 获得超12个赞
使用http.MaxBytesReader限制从客户端读取的数据量。执行这行代码
r.Body = http.MaxBytesReader(w, r.Body, 100000)
在调用 r.ParseForm、r.FormValue 或任何其他读取正文的请求方法之前。
用io.LimitedReader包裹请求体限制了应用程序读取的数据量,但不一定限制服务器代表应用程序读取的数据量。
检查请求内容长度是不可靠的,因为在使用分块编码时,该字段未设置为实际请求正文大小。
- 2 回答
- 0 关注
- 135 浏览
添加回答
举报
0/150
提交
取消