如果http POST请求大于x大小,则停止处理它

时间:2015-11-17 20:10:38

标签: go

如果我有POST请求的基本http处理程序,如果有效负载大于100 KB,如何停止处理?

根据我的理解,在我的POST处理程序中,服务器在后台播放POSTED数据。但是,如果我尝试访问它,它会阻止正确吗? 如果它的大小超过100 KB,我想停止处理。

2 个答案:

答案 0 :(得分:9)

使用http.MaxBytesReader限制从客户端读取的数据量。执行这行代码

r.Body = http.MaxBytesReader(w, r.Body, 100000) 

在调用r.ParseForm,r.FormValue或任何其他读取正文的请求方法之前。

使用io.LimitedReader包装请求正文限制了应用程序读取的数据量,但不一定限制服务器代表应用程序读取的数据量。

检查the request content length是不可靠的,因为当使用分块编码时,该字段未设置为实际的请求主体大小。

答案 1 :(得分:-1)

我相信你可以在决定是否继续之前检查http.Request.ContentLength param以了解所发布请求的大小,如果大于预期则返回错误。