From 66e40155a94da0357902839e722344af0ce61586 Mon Sep 17 00:00:00 2001 From: John Date: Mon, 6 May 2019 09:35:39 +0800 Subject: [PATCH] add http/https scheme for log of ghttp.Server; add transport setting to ignore tls cert for ghttp.Client; version updates --- g/net/ghttp/ghttp_client_request.go | 12 +++++++++--- g/net/ghttp/ghttp_server_handler.go | 5 ++++- g/net/ghttp/ghttp_server_log.go | 14 +++++++++++--- geg/net/ghttp/client/get.go | 8 +++++++- geg/net/ghttp/server/https/https.go | 1 + version.go | 2 +- 6 files changed, 33 insertions(+), 9 deletions(-) diff --git a/g/net/ghttp/ghttp_client_request.go b/g/net/ghttp/ghttp_client_request.go index 85df3bada..e907e8297 100644 --- a/g/net/ghttp/ghttp_client_request.go +++ b/g/net/ghttp/ghttp_client_request.go @@ -10,7 +10,8 @@ package ghttp import ( "bytes" - "encoding/json" + "crypto/tls" + "encoding/json" "errors" "fmt" "github.com/gogf/gf/g/os/gfile" @@ -40,11 +41,16 @@ func NewClient() *Client { return &Client{ Client : http.Client { Transport: &http.Transport { + // 默认不校验HTTPS证书有效性 + TLSClientConfig : &tls.Config{ + InsecureSkipVerify: true, + }, + // 默认关闭KeepAlive功能 DisableKeepAlives: true, }, }, - header : make(map[string]string), - cookies : make(map[string]string), + header : make(map[string]string), + cookies: make(map[string]string), } } diff --git a/g/net/ghttp/ghttp_server_handler.go b/g/net/ghttp/ghttp_server_handler.go index 7b8021ea4..f1522c216 100644 --- a/g/net/ghttp/ghttp_server_handler.go +++ b/g/net/ghttp/ghttp_server_handler.go @@ -3,7 +3,6 @@ // This Source Code Form is subject to the terms of the MIT License. // If a copy of the MIT was not distributed with this file, // You can obtain one at https://github.com/gogf/gf. -// 请求处理. package ghttp @@ -58,6 +57,10 @@ func (s *Server)handleRequest(w http.ResponseWriter, r *http.Request) { if !request.IsExited() { s.callHookHandler(HOOK_BEFORE_OUTPUT, request) } + // 如果没有产生异常状态,那么设置返回状态为200 + if request.Response.Status == 0 { + request.Response.Status = http.StatusOK + } // error log if e := recover(); e != nil { request.Response.WriteStatus(http.StatusInternalServerError) diff --git a/g/net/ghttp/ghttp_server_log.go b/g/net/ghttp/ghttp_server_log.go index 845b7dda3..3801abf4f 100644 --- a/g/net/ghttp/ghttp_server_log.go +++ b/g/net/ghttp/ghttp_server_log.go @@ -22,9 +22,13 @@ func (s *Server) handleAccessLog(r *Request) { v(r) return } - content := fmt.Sprintf(`%d "%s %s %s %s"`, + scheme := "http" + if r.TLS != nil { + scheme = "https" + } + content := fmt.Sprintf(`%d "%s %s %s %s %s"`, r.Response.Status, - r.Method, r.Host, r.URL.String(), r.Proto, + r.Method, scheme, r.Host, r.URL.String(), r.Proto, ) content += fmt.Sprintf(` %.3f`, float64(r.LeaveTime - r.EnterTime)/1000) content += fmt.Sprintf(`, %s, "%s", "%s"`, r.GetClientIp(), r.Referer(), r.UserAgent()) @@ -45,7 +49,11 @@ func (s *Server) handleErrorLog(error interface{}, r *Request) { } // 错误日志信息 - content := fmt.Sprintf(`%v, "%s %s %s %s"`, error, r.Method, r.Host, r.URL.String(), r.Proto) + scheme := "http" + if r.TLS != nil { + scheme = "https" + } + content := fmt.Sprintf(`%v, "%s %s %s %s %s"`, error, r.Method, scheme, r.Host, r.URL.String(), r.Proto) if r.LeaveTime > r.EnterTime { content += fmt.Sprintf(` %.3f`, float64(r.LeaveTime - r.EnterTime)/1000) } else { diff --git a/geg/net/ghttp/client/get.go b/geg/net/ghttp/client/get.go index 1cbdba695..5aaf4efdf 100644 --- a/geg/net/ghttp/client/get.go +++ b/geg/net/ghttp/client/get.go @@ -1,12 +1,18 @@ package main import ( + "crypto/tls" "fmt" "github.com/gogf/gf/g/net/ghttp" + "net/http" ) func main() { c := ghttp.NewClient() - r, _ := c.Get("http://baidu.com") + c.Transport = &http.Transport{ + TLSClientConfig : &tls.Config{ InsecureSkipVerify: true}, + } + r, e := c.Clone().Get("https://127.0.0.1:8199") + fmt.Println(e) fmt.Println(r.StatusCode) } diff --git a/geg/net/ghttp/server/https/https.go b/geg/net/ghttp/server/https/https.go index 40b9f367b..60fcddcb5 100644 --- a/geg/net/ghttp/server/https/https.go +++ b/geg/net/ghttp/server/https/https.go @@ -10,6 +10,7 @@ func main() { r.Response.Writeln("来自于HTTPS的:哈喽世界!") }) s.EnableHTTPS("./server.crt", "./server.key") + s.SetAccessLogEnabled(true) s.SetPort(8199) s.Run() } diff --git a/version.go b/version.go index 6913f6f3e..daa93f84d 100644 --- a/version.go +++ b/version.go @@ -1,4 +1,4 @@ package gf -const VERSION = "v1.6.8" +const VERSION = "v1.6.9" const AUTHORS = "john"