From c851e94b3e7a337e30549e845d95541d19814b12 Mon Sep 17 00:00:00 2001 From: John Date: Mon, 9 Apr 2018 18:00:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9Bghttp.Request.parsedPost?= =?UTF-8?q?=E4=B8=BA*gtype.Bool=E7=B1=BB=E5=9E=8B=EF=BC=8C=E4=BB=A5?= =?UTF-8?q?=E4=BF=9D=E8=AF=81=E5=B9=B6=E5=8F=91=E5=AE=89=E5=85=A8=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- g/net/ghttp/http_request.go | 7 ++++--- g/net/ghttp/http_server_handler.go | 10 ++++++---- 2 files changed, 10 insertions(+), 7 deletions(-) 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, }, }