From 80d4fdb5af551093dfa799c7742567dce35bce26 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期三, 19 六月 2019 19:12:57 +0800
Subject: [PATCH] fix PostForm bug
---
cameraTaskApi.go | 4 ++--
httpClient.go | 32 ++++++++++++++++++++++++--------
2 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/cameraTaskApi.go b/cameraTaskApi.go
index 054bb9a..cf95cbd 100644
--- a/cameraTaskApi.go
+++ b/cameraTaskApi.go
@@ -104,11 +104,11 @@
func (api CameraTaskApi) UpdateCameraTaskStatus(cameraId string,taskId string,statusInt int) (bool,interface{}){
url := BASIC_URL + DATA_URL_PREFIX + "/cameraTask/updateCameraTaskStatus"
client := NewClient()
- paramBody :=make(map[string]string)
+ paramBody :=make(map[string]interface{})
paramBody["cameraId"] = cameraId
paramBody["taskId"] = taskId
paramBody["status"] = strconv.Itoa(statusInt)
- respBody, err := client.DoPostRequest(url, CONTENT_TYPE_FORM, nil, paramBody, nil)
+ respBody, err := client.DoPostRequest(url, CONTENT_TYPE_FORM, paramBody, nil, nil)
if err != nil {
return false,nil
}
diff --git a/httpClient.go b/httpClient.go
index e9564c7..f11adf8 100644
--- a/httpClient.go
+++ b/httpClient.go
@@ -6,6 +6,8 @@
"io/ioutil"
"log"
"net/http"
+ "strings"
+ "github.com/ajg/form"
)
type HttpClient struct{}
@@ -42,18 +44,32 @@
//鍙戣捣POST璇锋眰
func (httpApi HttpClient) DoPostRequest(url string, contentType string, body map[string]interface{}, params map[string]string, headers map[string]string) ([]byte, error) {
var resultBytes []byte
- var bodyJson []byte
- if body != nil {
- var err error
- bodyJson, err = json.Marshal(body)
+ var request *http.Request
+ var err error
+ if contentType == CONTENT_TYPE_FORM || contentType == CONTENT_TYPE_MULFORM {
+ formData,err := form.EncodeToString(body)
+ if err !=nil {
+ return resultBytes,err
+ }
+ request, err = http.NewRequest("POST",url,strings.NewReader(formData))
+ if err !=nil {
+ return resultBytes,err
+ }
+ } else {
+ var bodyJson []byte
+ if body != nil {
+ var err error
+ bodyJson, err = json.Marshal(body)
+ if err != nil {
+ return resultBytes, err
+ }
+ }
+ request, err = http.NewRequest("POST", url, bytes.NewBuffer(bodyJson))
if err != nil {
return resultBytes, err
}
}
- request, err := http.NewRequest("POST", url, bytes.NewBuffer(bodyJson))
- if err != nil {
- return resultBytes, err
- }
+
request.Header.Set("Content-type", contentType)
//add params
q := request.URL.Query()
--
Gitblit v1.8.0