From 1e68090e319f97ddd18581aff9e422fcd9ad7571 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期四, 29 八月 2019 14:08:45 +0800
Subject: [PATCH] add UpdateFace
---
httpClient.go | 174 +++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 148 insertions(+), 26 deletions(-)
diff --git a/httpClient.go b/httpClient.go
index 3373e50..f11adf8 100644
--- a/httpClient.go
+++ b/httpClient.go
@@ -1,49 +1,171 @@
package dbapi
import (
+ "bytes"
"encoding/json"
- "fmt"
"io/ioutil"
+ "log"
"net/http"
"strings"
- "time"
-
+ "github.com/ajg/form"
)
-type DbApi struct{}
+type HttpClient struct{}
-const (
- BASIC_URL = "http://192.168.1.182:8000"
-)
-
-//閫氳繃cameraId鑾峰彇鎽勫儚鏈轰俊鎭�
-func (api DbApi) GetCameraById(cameraId string) (result Camera, err error) {
- url := BASIC_URL + "/data/api-v/camera/show/" + cameraId
- request, err := http.NewRequest("GET", url, strings.NewReader(cameraId))
+//鍙戣捣GET璇锋眰
+func (httpApi HttpClient) DoGetRequest(url string, params map[string]string, headers map[string]string) ([]byte, error) {
+ var body []byte
+ request, err := http.NewRequest("GET", url, nil)
if err != nil {
- return result, err
+ return body, err
}
- request.Header.Add("Content-Type", "application/json")
- timeout := time.Duration(5 * time.Second) //瓒呮椂鏃堕棿50ms
- client := &http.Client{Timeout: timeout}
+ // add params
+ query := request.URL.Query()
+ if params != nil {
+ for key, val := range params {
+ query.Add(key, val)
+ }
+ request.URL.RawQuery = query.Encode()
+ }
+ //add headers
+ client := &http.Client{}
resp, err := client.Do(request)
if err != nil {
- return result, err
+ return body, err
}
defer resp.Body.Close()
-
- body, err := ioutil.ReadAll(resp.Body)
+ body, err = ioutil.ReadAll(resp.Body)
if err != nil {
- return result, err
+ return body, err
+ }
+ return body, nil
+}
+
+//鍙戣捣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 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
+ }
}
- var res Result
- if err = json.Unmarshal(body, &res); err != nil {
- fmt.Println(err)
+ request.Header.Set("Content-type", contentType)
+ //add params
+ q := request.URL.Query()
+ if params != nil {
+ for key, val := range params {
+ q.Add(key, val)
+ }
+ request.URL.RawQuery = q.Encode()
}
+ // add headers
+ if headers != nil {
+ for key, val := range headers {
+ request.Header.Add(key, val)
+ }
+ }
+ client := &http.Client{}
+ resp, err := client.Do(request)
+ if err != nil {
+ return resultBytes, err
+ }
+ defer resp.Body.Close()
+ resultBytes, err = ioutil.ReadAll(resp.Body)
+ if err != nil {
+ return resultBytes, err
+ }
+ return resultBytes, nil
+}
- bytes, _ := json.Marshal(res.Data)
- err = json.Unmarshal(bytes, &result)
+//鏋勯�爌ut璇锋眰
+func (httpApi HttpClient) DoPutRequest(url string, contentType string, body map[string]interface{}, headers map[string]string) ([]byte, error) {
+ var resultBytes []byte
+ var bodyJson []byte
+ if body != nil {
+ var err error
+ bodyJson, err = json.Marshal(body)
+ if err != nil {
+ return resultBytes, err
+ }
+ }
+ request, err := http.NewRequest("PUT", url, bytes.NewBuffer(bodyJson))
+ if err != nil {
+ log.Println(err)
+ return resultBytes, err
+ }
+ request.Header.Set("Content-type", contentType)
+ // add headers
+ if headers != nil {
+ for key, val := range headers {
+ request.Header.Add(key, val)
+ }
+ }
+ client := &http.Client{}
+ resp, err := client.Do(request)
+ if err != nil {
+ return resultBytes, err
+ }
+ defer resp.Body.Close()
+ resultBytes, err = ioutil.ReadAll(resp.Body)
+ if err != nil {
+ return resultBytes, err
+ }
+ return resultBytes, nil
+}
- return result, err
+//鏋勯�燿elete璇锋眰
+func (httpApi HttpClient) DoDeleteRequest(url string, contentType string, body map[string]interface{}, headers map[string]string) ([]byte, error) {
+ var resultBytes []byte
+ var bodyJson []byte
+ if body != nil {
+ var err error
+ bodyJson, err = json.Marshal(body)
+ if err != nil {
+ return resultBytes, err
+ }
+ }
+ request, err := http.NewRequest("DELETE", url, bytes.NewBuffer(bodyJson))
+ if err != nil {
+ log.Println(err)
+ return resultBytes, err
+ }
+ request.Header.Set("Content-type", contentType)
+ // add headers
+ if headers != nil {
+ for key, val := range headers {
+ request.Header.Add(key, val)
+ }
+ }
+ client := &http.Client{}
+ resp, err := client.Do(request)
+ if err != nil {
+ return resultBytes, err
+ }
+ defer resp.Body.Close()
+ resultBytes, err = ioutil.ReadAll(resp.Body)
+ if err != nil {
+ return resultBytes, err
+ }
+ return resultBytes, nil
}
--
Gitblit v1.8.0