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{