diff --git a/g/net/ghttp/http_request.go b/g/net/ghttp/http_request.go index 98a452962..27a785deb 100644 --- a/g/net/ghttp/http_request.go +++ b/g/net/ghttp/http_request.go @@ -12,12 +12,13 @@ import ( "net/url" "gitee.com/johng/gf/g/util/gconv" "gitee.com/johng/gf/g/encoding/gjson" + "gitee.com/johng/gf/g/container/gtype" ) // 请求对象 type Request struct { http.Request - parsedPost bool // POST参数是否已经解析 + parsedPost *gtype.Bool // POST参数是否已经解析 getvals *url.Values // GET参数 Id int // 请求id(唯一) Server *Server // 请求关联的服务器对象 @@ -36,9 +37,9 @@ func (r *Request) initGet() { // 初始化POST请求参数 func (r *Request) initPost() { - if !r.parsedPost { + if !r.parsedPost.Val() { // 快速保存,尽量避免并发问题 - r.parsedPost = true + r.parsedPost.Set(true) // MultiMedia表单请求解析允许最大使用内存:1GB r.ParseMultipartForm(1024*1024*1024) } diff --git a/g/net/ghttp/http_server_handler.go b/g/net/ghttp/http_server_handler.go index 0dfa1a93d..48652c9b6 100644 --- a/g/net/ghttp/http_server_handler.go +++ b/g/net/ghttp/http_server_handler.go @@ -18,6 +18,7 @@ import ( "path/filepath" "gitee.com/johng/gf/g/os/gfile" "gitee.com/johng/gf/g/encoding/ghtml" + "gitee.com/johng/gf/g/container/gtype" ) // 默认HTTP Server处理入口,http包底层默认使用了gorutine异步处理请求,所以这里不再异步执行 @@ -38,10 +39,11 @@ func (s *Server)handleRequest(w http.ResponseWriter, r *http.Request) { } // 构造请求参数对象 request := &Request{ - Id : s.servedCount.Add(1), - Server : s, - Request : *r, - Response : &Response { + parsedPost : gtype.NewBool(), + Id : s.servedCount.Add(1), + Server : s, + Request : *r, + Response : &Response { ResponseWriter : w, }, }