--- /dev/null
+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
+}