From daf7c4ec7270af5fc0b87eeaa3da1909d299be70 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@qq.com>
Date: 星期四, 09 五月 2019 20:52:49 +0800
Subject: [PATCH] common get and post

---
 common.go    |  107 ++++++++++++++++++++++++++
 cameraApi.go |   28 +++++++
 taskApi.go   |    4 +
 areaApi.go   |   46 +++++++++++
 4 files changed, 185 insertions(+), 0 deletions(-)

diff --git a/areaApi.go b/areaApi.go
new file mode 100644
index 0000000..dee1b49
--- /dev/null
+++ b/areaApi.go
@@ -0,0 +1,46 @@
+package dbapi
+
+import (
+	"encoding/json"
+	"fmt"
+	"net/http"
+	"strings"
+)
+
+type AreaApi struct {
+}
+
+//鏌ヨ鏈湴鎽勫儚鏈烘爲
+func (api AreaApi) GetLocalCameraTree(parentId int) []TreeMenu {
+	var result []TreeMenu
+
+	url := BASIC_URL + "/data/api-v/area/localmenu"
+	request, err := http.NewRequest("GET", url, strings.NewReader(string(parentId)))
+	if err != nil {
+		return result
+	}
+
+	body, err := DoRequest(request, "application/json")
+	if err != nil {
+		return result
+	}
+
+	var res Result
+	if err = json.Unmarshal(body, &res); err != nil {
+		fmt.Println(err)
+	}
+
+	bytes, _ := json.Marshal(res.Data)
+	err = json.Unmarshal(bytes, &result)
+	if err != nil {
+		fmt.Println(err)
+	}
+	return result
+}
+
+//娣诲姞鐩綍鑺傜偣
+func (api AreaApi) AreaAdd(area Area) bool {
+	flag := false
+
+	return flag
+}
diff --git a/cameraApi.go b/cameraApi.go
new file mode 100644
index 0000000..2b3d484
--- /dev/null
+++ b/cameraApi.go
@@ -0,0 +1,28 @@
+package dbapi
+
+import (
+	"encoding/json"
+	"fmt"
+)
+
+type CameraApi struct{}
+
+//閫氳繃cameraId鑾峰彇鎽勫儚鏈轰俊鎭�
+func (api CameraApi) GetCameraById(cameraId string) (result Camera, err error) {
+	url := BASIC_URL + "/data/api-v/camera/show/" + cameraId
+
+	body, err := DoGetRequest(url, nil, nil)
+	if err != nil {
+		return result, err
+	}
+
+	var res Result
+	if err = json.Unmarshal(body, &res); err != nil {
+		fmt.Println(err)
+	}
+
+	bytes, _ := json.Marshal(res.Data)
+	err = json.Unmarshal(bytes, &result)
+
+	return result, err
+}
diff --git a/common.go b/common.go
new file mode 100644
index 0000000..c6edb76
--- /dev/null
+++ b/common.go
@@ -0,0 +1,107 @@
+package dbapi
+
+import (
+	"bytes"
+	"encoding/json"
+	"io/ioutil"
+	"log"
+	"net/http"
+	"time"
+)
+
+const (
+	BASIC_URL = "http://192.168.1.182:8000"
+)
+
+//鍙戣捣GET璇锋眰
+func 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 {
+		log.Println(err)
+		return body, err
+	}
+	// 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{}
+	log.Printf("Go GET URL : %s \n", request.URL.String())
+	resp, err := client.Do(request)
+	if err != nil {
+		return body, err
+	}
+	defer resp.Body.Close()
+	body, err = ioutil.ReadAll(resp.Body)
+	if err != nil {
+		return body, err
+	}
+	return body, nil
+}
+
+//鍙戣捣POST璇锋眰
+func DoPostRequest(url string, body map[string]string, params map[string]string, headers map[string]string) ([]byte, error) {
+	var resultByte []byte
+	var bodyJson []byte
+	if body != nil {
+		var err error
+		bodyJson, err = json.Marshal(body)
+		if err != nil {
+			log.Println(err)
+			return resultByte, err
+		}
+	}
+	request, err := http.NewRequest("POST", url, bytes.NewBuffer(bodyJson))
+	if err != nil {
+		log.Println(err)
+		return resultByte, err
+	}
+	request.Header.Set("Content-type", "application/json")
+	//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 resultByte, err
+	}
+	defer resp.Body.Close()
+	resultByte, err = ioutil.ReadAll(resp.Body)
+	if err != nil {
+		return resultByte, err
+	}
+	return resultByte, nil
+}
+
+func DoRequest(request *http.Request, contentType string) ([]byte, error) {
+	var body []byte
+	request.Header.Add("Content-Type", contentType)
+	timeout := time.Duration(5 * time.Second) //瓒呮椂鏃堕棿50ms
+	client := &http.Client{Timeout: timeout}
+	resp, err := client.Do(request)
+	if err != nil {
+		return body, err
+	}
+	defer resp.Body.Close()
+	body, err = ioutil.ReadAll(resp.Body)
+	if err != nil {
+		return body, err
+	}
+	return body, nil
+}
diff --git a/taskApi.go b/taskApi.go
new file mode 100644
index 0000000..7cf5ce3
--- /dev/null
+++ b/taskApi.go
@@ -0,0 +1,4 @@
+package dbapi
+
+type TaskApi struct {}
+

--
Gitblit v1.8.0