From 3dc932a0cbed4edb92dd4be61d81b0503aa4297e Mon Sep 17 00:00:00 2001 From: John Date: Mon, 30 Apr 2018 22:34:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9Bghttp.Server=20Cookie?= =?UTF-8?q?=E7=A4=BA=E4=BE=8B=EF=BC=8C=E6=94=B9=E8=BF=9Bghttp.Response.Wri?= =?UTF-8?q?te=E6=95=B0=E6=8D=AE=E7=B1=BB=E5=9E=8B=E8=BD=AC=E6=8D=A2?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- g/net/ghttp/http_response.go | 9 ++++++++- geg/net/ghttp/cookie.go | 18 ++++++++++++++++++ geg/net/ghttp/session.go | 1 - 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 geg/net/ghttp/cookie.go diff --git a/g/net/ghttp/http_response.go b/g/net/ghttp/http_response.go index fe5fbe14e..78337f762 100644 --- a/g/net/ghttp/http_response.go +++ b/g/net/ghttp/http_response.go @@ -60,7 +60,14 @@ func (r *Response) Write(content ... interface{}) { } r.mu.Lock() for _, v := range content { - r.buffer = append(r.buffer, gconv.String(v)...) + switch v.(type) { + case []byte: + // 如果是二进制数据,那么返回二进制数据 + r.buffer = append(r.buffer, gconv.Bytes(v)...) + default: + // 否则一律按照可显示的字符串进行转换 + r.buffer = append(r.buffer, gconv.String(v)...) + } } r.mu.Unlock() } diff --git a/geg/net/ghttp/cookie.go b/geg/net/ghttp/cookie.go new file mode 100644 index 000000000..d945a3390 --- /dev/null +++ b/geg/net/ghttp/cookie.go @@ -0,0 +1,18 @@ +package main + +import ( + "gitee.com/johng/gf/g" + "gitee.com/johng/gf/g/os/gtime" + "gitee.com/johng/gf/g/net/ghttp" +) + +func main() { + s := g.Server() + s.BindHandler("/cookie", func(r *ghttp.Request) { + datetime := r.Cookie.Get("datetime") + r.Cookie.Set("datetime", gtime.Datetime()) + r.Response.Write("datetime:", datetime) + }) + s.SetPort(8199) + s.Run() +} \ No newline at end of file diff --git a/geg/net/ghttp/session.go b/geg/net/ghttp/session.go index 61c25b774..5da28f835 100644 --- a/geg/net/ghttp/session.go +++ b/geg/net/ghttp/session.go @@ -5,7 +5,6 @@ import ( "gitee.com/johng/gf/g/net/ghttp" ) - func main() { s := g.Server() s.BindHandler("/session", func(r *ghttp.Request) {