feat(utils): 新增工具类:邮箱、请求

This commit is contained in:
2025-11-24 22:07:55 +08:00
parent 584575fd29
commit 09ea1ab8fe
3 changed files with 127 additions and 0 deletions

59
pkg/request/request.go Normal file
View File

@@ -0,0 +1,59 @@
package request
import (
"net/http/cookiejar"
"time"
"github.com/go-resty/resty/v2"
)
type RequestClient struct {
client *resty.Client
}
func NewRequestClient(baseURL string, headers map[string]string) *RequestClient {
client := resty.New()
jar, _ := cookiejar.New(nil)
client.
SetBaseURL(baseURL).
SetTimeout(60 * time.Second).
SetCookieJar(jar).
SetRetryCount(3)
if headers != nil {
client.SetHeaders(headers)
}
return &RequestClient{client}
}
func (r *RequestClient) Get(endpoint string, queryParams map[string]string) (*resty.Response, error) {
resp, err := r.client.R().
SetQueryParams(queryParams).
Get(endpoint)
return resp, err
}
func (r *RequestClient) Post(endpoint string, body interface{}, result interface{}) (*resty.Response, error) {
resp, err := r.client.R().
SetBody(body).
SetResult(result).
Post(endpoint)
return resp, err
}
func (r *RequestClient) Put(endpoint string, body interface{}) (*resty.Response, error) {
resp, err := r.client.R().
SetBody(body).
Put(endpoint)
return resp, err
}
func (r *RequestClient) Delete(endpoint string) (*resty.Response, error) {
resp, err := r.client.R().Delete(endpoint)
return resp, err
}
func (r *RequestClient) SetHeaders(headers map[string]string) {
r.client.SetHeaders(headers)
}