- Add Get, Post, Delete Request function
authorjw_wonny.cha <jw_wonny.cha@samsung.com>
Tue, 2 Apr 2019 09:38:56 +0000 (18:38 +0900)
committerjw_wonny.cha <jw_wonny.cha@samsung.com>
Tue, 2 Apr 2019 09:38:56 +0000 (18:38 +0900)
src/restapi/httpclient/http_sender.go [new file with mode: 0644]

diff --git a/src/restapi/httpclient/http_sender.go b/src/restapi/httpclient/http_sender.go
new file mode 100644 (file)
index 0000000..67af7a3
--- /dev/null
@@ -0,0 +1,102 @@
+package httpclient
+
+import (
+       "bytes"
+       "io/ioutil"
+       "net"
+       "net/http"
+       "time"
+)
+
+// DoGet is for get request
+func DoGet(targetURL string) (respBytes []byte, err error) {
+       req, err := http.NewRequest("GET", targetURL, nil)
+       if err != nil {
+               return
+       }
+
+       var netTransport = &http.Transport{
+               Dial: (&net.Dialer{
+                       Timeout: 5 * time.Second,
+               }).Dial,
+               TLSHandshakeTimeout: 5 * time.Second,
+       }
+
+       client := &http.Client{
+               Timeout:   time.Second * 10,
+               Transport: netTransport,
+       }
+
+       resp, err := client.Do(req)
+       if err != nil {
+               return
+       }
+       defer resp.Body.Close()
+
+       respBytes, err = ioutil.ReadAll(resp.Body)
+       return
+}
+
+// DoPost is for post request
+func DoPost(targetURL string, pbytes []byte) (respBytes []byte, err error) {
+       buff := bytes.NewBuffer(pbytes)
+
+       req, err := http.NewRequest("POST", targetURL, buff)
+       if err != nil {
+               return
+       }
+
+       // Content-Type Header
+       req.Header.Add("Content-Type", "application/json")
+
+       var netTransport = &http.Transport{
+               Dial: (&net.Dialer{
+                       Timeout: 5 * time.Second,
+               }).Dial,
+               TLSHandshakeTimeout: 5 * time.Second,
+       }
+
+       client := &http.Client{
+               Timeout:   time.Second * 10,
+               Transport: netTransport,
+       }
+
+       // client := &http.Client{}
+       resp, err := client.Do(req)
+       if err != nil {
+               return
+       }
+       defer resp.Body.Close()
+
+       respBytes, err = ioutil.ReadAll(resp.Body)
+       return
+}
+
+// DoDelete is for delete request
+func DoDelete(targetURL string) (respBytes []byte, err error) {
+       req, err := http.NewRequest("DELETE", targetURL, nil)
+       if err != nil {
+               return
+       }
+
+       var netTransport = &http.Transport{
+               Dial: (&net.Dialer{
+                       Timeout: 5 * time.Second,
+               }).Dial,
+               TLSHandshakeTimeout: 5 * time.Second,
+       }
+
+       client := &http.Client{
+               Timeout:   time.Second * 10,
+               Transport: netTransport,
+       }
+
+       resp, err := client.Do(req)
+       if err != nil {
+               return
+       }
+       defer resp.Body.Close()
+
+       respBytes, err = ioutil.ReadAll(resp.Body)
+       return
+}