From 5ffec2364a4bb3406e9243fc2d2bbeafa3cdd71c Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期一, 17 六月 2019 19:57:11 +0800
Subject: [PATCH] fix url

---
 httpClient.go |  155 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 155 insertions(+), 0 deletions(-)

diff --git a/httpClient.go b/httpClient.go
new file mode 100644
index 0000000..e9564c7
--- /dev/null
+++ b/httpClient.go
@@ -0,0 +1,155 @@
+package dbapi
+
+import (
+	"bytes"
+	"encoding/json"
+	"io/ioutil"
+	"log"
+	"net/http"
+)
+
+type HttpClient struct{}
+
+//鍙戣捣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 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{}
+	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 (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)
+		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()
+	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
+}
+
+//鏋勯�爌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
+}
+
+//鏋勯�燿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