OSDN Git Service

Merge pull request #201 from Bytom/v0.1
[bytom/vapor.git] / federation / util / http_util.go
diff --git a/federation/util/http_util.go b/federation/util/http_util.go
new file mode 100644 (file)
index 0000000..b6a1cb3
--- /dev/null
@@ -0,0 +1,50 @@
+package util
+
+import (
+       "bytes"
+       "encoding/json"
+       "io/ioutil"
+       "net/http"
+)
+
+func Get(url string, result interface{}) error {
+       client := &http.Client{}
+       resp, err := client.Get(url)
+       if err != nil {
+               return err
+       }
+
+       defer resp.Body.Close()
+       body, err := ioutil.ReadAll(resp.Body)
+       if err != nil {
+               return err
+       }
+
+       return json.Unmarshal(body, result)
+}
+
+func Post(url string, payload []byte, result interface{}) error {
+       req, err := http.NewRequest("POST", url, bytes.NewBuffer(payload))
+       if err != nil {
+               return err
+       }
+
+       req.Header.Set("Content-Type", "application/json")
+       client := &http.Client{}
+       resp, err := client.Do(req)
+       if err != nil {
+               return err
+       }
+
+       defer resp.Body.Close()
+       if result == nil {
+               return nil
+       }
+
+       body, err := ioutil.ReadAll(resp.Body)
+       if err != nil {
+               return err
+       }
+
+       return json.Unmarshal(body, result)
+}