From 61476d351dee8b3b511f0e1ed5718c8caf276c0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jefferwang=28=E7=8E=8B=E4=BF=8A=E9=94=8B=29?= Date: Tue, 19 Feb 2019 15:11:45 +0800 Subject: [PATCH] add PostJSONWithRespContentType --- miniprogram/qrcode.go | 2 +- util/http.go | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/miniprogram/qrcode.go b/miniprogram/qrcode.go index d73651c..a7f3aac 100644 --- a/miniprogram/qrcode.go +++ b/miniprogram/qrcode.go @@ -5,7 +5,7 @@ import ( "fmt" "strings" - "github.com/silenceper/wechat/util" + "github.com/JefferyWang/wechat/util" ) const ( diff --git a/util/http.go b/util/http.go index 6881052..006f916 100644 --- a/util/http.go +++ b/util/http.go @@ -50,6 +50,32 @@ func PostJSON(uri string, obj interface{}) ([]byte, error) { return ioutil.ReadAll(response.Body) } +// PostJSONWithRespContentType post json数据请求,且返回数据类型 +func PostJSONWithRespContentType(uri string, obj interface{}) ([]byte, string, error) { + jsonData, err := json.Marshal(obj) + if err != nil { + return nil, "", err + } + + jsonData = bytes.Replace(jsonData, []byte("\\u003c"), []byte("<"), -1) + jsonData = bytes.Replace(jsonData, []byte("\\u003e"), []byte(">"), -1) + jsonData = bytes.Replace(jsonData, []byte("\\u0026"), []byte("&"), -1) + + body := bytes.NewBuffer(jsonData) + response, err := http.Post(uri, "application/json;charset=utf-8", body) + if err != nil { + return nil, "", err + } + defer response.Body.Close() + + if response.StatusCode != http.StatusOK { + return nil, "", fmt.Errorf("http get error : uri=%v , statusCode=%v", uri, response.StatusCode) + } + responseData, err := ioutil.ReadAll(response.Body) + contentType := response.Header.Get("Content-Type") + return responseData, contentType, err +} + //PostFile 上传文件 func PostFile(fieldname, filename, uri string) ([]byte, error) { fields := []MultipartFormField{