如果我有POST请求的基本http处理程序,如果有效负载大于100 KB,如何停止处理?
根据我的理解,在我的POST处理程序中,服务器在后台播放POSTED数据。但是,如果我尝试访问它,它会阻止正确吗? 如果它的大小超过100 KB,我想停止处理。
答案 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以了解所发布请求的大小,如果大于预期则返回错误。