plugins/utils/request/request.go

39 lines
679 B
Go

package request
import (
"bytes"
"context"
"fmt"
"io"
"net/http"
"time"
)
func Request(_ context.Context, method, url string, body []byte) ([]byte, http.Header, error) {
req, err := http.NewRequest(method, url, bytes.NewBuffer(body))
if err != nil {
return nil, nil, err
}
httpClient := &http.Client{
Timeout: 15 * time.Second,
}
resp, err := httpClient.Do(req)
if err != nil {
return nil, nil, err
}
defer resp.Body.Close()
bodyBytes, err := io.ReadAll(resp.Body)
if err != nil {
return nil, nil, err
}
if resp.StatusCode != http.StatusOK {
return nil, nil, fmt.Errorf("请求异常:%s", resp.Status)
}
return bodyBytes, resp.Header, nil
}