package util import ( "car-service/vo" "encoding/json" "fmt" "time" ) type HikHttpUtil struct { AppKey string AppSecret string ReqHost string } const ( HikResult_Success = "0" ) func (h *HikHttpUtil) Post(url string, reqBody map[string]interface{}) *vo.HikResult { //b := GetIBytes(reqBody) //contentMd5 := MD5Base64(b) date := time.Now().Format("2006-01-02 15:04:05") signature := Hik_ComputeSignatureBase64(h.AppKey, h.AppSecret, "POST", "*/*", CONTENT_TYPE_JSON, date, url) header := map[string]string{ "Accept": "*/*", "Content-Type": CONTENT_TYPE_JSON, "Date": date, "X-Ca-Key": h.AppKey, "X-Ca-Signature": signature, "X-Ca-Signature-Headers": "x-ca-key", } //fmt.Println("Content-MD5:", contentMd5, "date:", date, "signature:",signature) bytes, err := DoPostRequest(h.ReqHost+url, CONTENT_TYPE_JSON, reqBody, nil, header) if err !=nil { fmt.Printf("DoPostRequest err:", err) return nil } var result vo.HikResult err = json.Unmarshal(bytes, &result) if err != nil { fmt.Println("unmarshal HikResult err:", err) fmt.Println("hik ret:", string(bytes)) return nil } return &result }