123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- package webutils
- import (
- "errors"
- "io"
- "net/http"
- "strings"
- "time"
- "github.com/sirupsen/logrus"
- )
- func Get(reqUrl string, timeout time.Duration) ([]byte, error) {
- req, err := http.NewRequest(http.MethodGet, reqUrl, nil)
- if err != nil {
- logrus.Error(err)
- return nil, err
- }
- cli := http.Client{
- Timeout: timeout,
- }
- resp, err := cli.Do(req)
- if err != nil {
- logrus.Error(err)
- return nil, err
- }
- defer resp.Body.Close()
- b, err := io.ReadAll(resp.Body)
- if err != nil {
- logrus.Error(err)
- return nil, err
- }
- return b, nil
- }
- func Post(reqUrl string, payload string, timeout time.Duration) ([]byte, error) {
- req, err := http.NewRequest(http.MethodPost, reqUrl, strings.NewReader(payload))
- if err != nil {
- logrus.Error(err)
- return nil, err
- }
- cli := http.Client{
- Timeout: timeout,
- }
- resp, err := cli.Do(req)
- if err != nil {
- logrus.Error(err)
- return nil, err
- }
- if resp.StatusCode != http.StatusOK {
- logrus.Error("状态码错误:", resp)
- return nil, errors.New("状态码错误")
- }
- defer resp.Body.Close()
- b, err := io.ReadAll(resp.Body)
- if err != nil {
- logrus.Error(err)
- return nil, err
- }
- return b, nil
- }
- func PostWithHeader(reqUrl string, payload string, headers map[string]string, timeout time.Duration) ([]byte, error) {
- req, err := http.NewRequest(http.MethodPost, reqUrl, strings.NewReader(payload))
- if err != nil {
- logrus.Error(err)
- return nil, err
- }
- for key, val := range headers {
- req.Header.Set(key, val)
- }
- cli := http.Client{
- Timeout: timeout,
- }
- resp, err := cli.Do(req)
- if err != nil {
- logrus.Error(err)
- return nil, err
- }
- if resp.StatusCode != http.StatusOK {
- logrus.Error("状态码错误:", resp)
- return nil, errors.New("状态码错误")
- }
- defer resp.Body.Close()
- b, err := io.ReadAll(resp.Body)
- if err != nil {
- logrus.Error(err)
- return nil, err
- }
- return b, nil
- }
- func GetWithHeader(reqUrl string, headers map[string]string, timeout time.Duration) ([]byte, error) {
- req, err := http.NewRequest(http.MethodGet, reqUrl, nil)
- if err != nil {
- logrus.Error(err)
- return nil, err
- }
- for key, val := range headers {
- req.Header.Set(key, val)
- }
- cli := http.Client{
- Timeout: timeout,
- }
- resp, err := cli.Do(req)
- if err != nil {
- logrus.Error(err)
- return nil, err
- }
- defer resp.Body.Close()
- b, err := io.ReadAll(resp.Body)
- if err != nil {
- logrus.Error(err)
- return nil, err
- }
- return b, nil
- }
|