|
|
@@ -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{
|