liuxiaolong
2020-09-08 f3f7088545c2be0b6da1b4e5e1d8461fa57a63fc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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
}