Files
blivedm-go/api/utils.go
2023-09-14 20:44:46 +08:00

57 lines
1.0 KiB
Go

package api
import (
"encoding/json"
"io"
"net/http"
)
func HttpGet(url string, headers *http.Header) ([]byte, error) {
req, err := http.NewRequest("GET", url, nil)
req.Header = *headers
c := &http.Client{}
resp, err := c.Do(req)
if err != nil {
return nil, err
}
defer func() {
_ = resp.Body.Close()
}()
body, err := io.ReadAll(resp.Body)
if err != nil {
return nil, err
}
return body, nil
}
func GetJson(url string, result interface{}) error {
resp, err := http.Get(url)
if err != nil {
return err
}
defer func() {
_ = resp.Body.Close()
}()
if err = json.NewDecoder(resp.Body).Decode(result); err != nil {
return err
}
return nil
}
func GetJsonWithHeader(url string, headers *http.Header, result interface{}) error {
req, err := http.NewRequest("GET", url, nil)
req.Header = *headers
c := &http.Client{}
resp, err := c.Do(req)
if err != nil {
return err
}
defer func() {
_ = resp.Body.Close()
}()
if err = json.NewDecoder(resp.Body).Decode(result); err != nil {
return err
}
return nil
}