From 829fa29cf11d31ceb2b7155075e51298b11711ba Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Wed, 28 May 2025 10:46:02 +0800 Subject: [PATCH] feat: add user-agent http header for thirdparty sdks --- .../notifier/providers/discordbot/discordbot.go | 3 ++- .../pkg/core/notifier/providers/gotify/gotify.go | 3 ++- .../notifier/providers/mattermost/mattermost.go | 4 +++- .../core/notifier/providers/pushover/pushover.go | 1 + .../core/notifier/providers/pushplus/pushplus.go | 1 + .../notifier/providers/serverchan/serverchan.go | 1 + .../core/notifier/providers/slackbot/slackbot.go | 3 ++- .../notifier/providers/telegrambot/telegrambot.go | 1 + .../core/notifier/providers/wecombot/wecombot.go | 1 + internal/pkg/sdk3rd/1panel/client.go | 5 ++--- internal/pkg/sdk3rd/baishan/client.go | 3 ++- internal/pkg/sdk3rd/btpanel/client.go | 8 ++++---- internal/pkg/sdk3rd/btwaf/client.go | 8 ++++---- internal/pkg/sdk3rd/bunny/client.go | 1 + internal/pkg/sdk3rd/cachefly/client.go | 2 +- internal/pkg/sdk3rd/cdnfly/client.go | 5 +++-- internal/pkg/sdk3rd/dcloud/unicloud/client.go | 3 ++- internal/pkg/sdk3rd/dnsla/client.go | 3 ++- internal/pkg/sdk3rd/flexcdn/client.go | 1 + internal/pkg/sdk3rd/gname/client.go | 12 ++++++------ internal/pkg/sdk3rd/goedge/client.go | 1 + internal/pkg/sdk3rd/lecdn/v3/client/client.go | 3 ++- internal/pkg/sdk3rd/lecdn/v3/master/client.go | 3 ++- internal/pkg/sdk3rd/netlify/client.go | 3 ++- internal/pkg/sdk3rd/rainyun/client.go | 3 ++- internal/pkg/sdk3rd/ratpanel/client.go | 1 + internal/pkg/sdk3rd/safeline/client.go | 6 +++--- internal/pkg/sdk3rd/upyun/console/client.go | 1 + internal/pkg/sdk3rd/wangsu/cdnpro/api.go | 4 ++-- internal/pkg/sdk3rd/wangsu/openapi/client.go | 15 ++++++++------- 30 files changed, 66 insertions(+), 43 deletions(-) diff --git a/internal/pkg/core/notifier/providers/discordbot/discordbot.go b/internal/pkg/core/notifier/providers/discordbot/discordbot.go index 3ed0cab7..20e7d304 100644 --- a/internal/pkg/core/notifier/providers/discordbot/discordbot.go +++ b/internal/pkg/core/notifier/providers/discordbot/discordbot.go @@ -52,8 +52,9 @@ func (n *NotifierProvider) Notify(ctx context.Context, subject string, message s // REF: https://discord.com/developers/docs/resources/message#create-message req := n.httpClient.R(). SetContext(ctx). - SetHeader("Content-Type", "application/json"). SetHeader("Authorization", "Bot "+n.config.BotToken). + SetHeader("Content-Type", "application/json"). + SetHeader("User-Agent", "certimate"). SetBody(map[string]any{ "content": subject + "\n" + message, }) diff --git a/internal/pkg/core/notifier/providers/gotify/gotify.go b/internal/pkg/core/notifier/providers/gotify/gotify.go index c82cd5a5..aa7d36a0 100644 --- a/internal/pkg/core/notifier/providers/gotify/gotify.go +++ b/internal/pkg/core/notifier/providers/gotify/gotify.go @@ -57,8 +57,9 @@ func (n *NotifierProvider) Notify(ctx context.Context, subject string, message s // REF: https://gotify.net/api-docs#/message/createMessage req := n.httpClient.R(). SetContext(ctx). - SetHeader("Content-Type", "application/json"). SetHeader("Authorization", "Bearer "+n.config.Token). + SetHeader("Content-Type", "application/json"). + SetHeader("User-Agent", "certimate"). SetBody(map[string]any{ "title": subject, "message": message, diff --git a/internal/pkg/core/notifier/providers/mattermost/mattermost.go b/internal/pkg/core/notifier/providers/mattermost/mattermost.go index 81283f7c..70c6effe 100644 --- a/internal/pkg/core/notifier/providers/mattermost/mattermost.go +++ b/internal/pkg/core/notifier/providers/mattermost/mattermost.go @@ -60,6 +60,7 @@ func (n *NotifierProvider) Notify(ctx context.Context, subject string, message s loginReq := n.httpClient.R(). SetContext(ctx). SetHeader("Content-Type", "application/json"). + SetHeader("User-Agent", "certimate"). SetBody(map[string]any{ "login_id": n.config.Username, "password": n.config.Password, @@ -76,8 +77,9 @@ func (n *NotifierProvider) Notify(ctx context.Context, subject string, message s // REF: https://developers.mattermost.com/api-documentation/#/operations/CreatePost postReq := n.httpClient.R(). SetContext(ctx). - SetHeader("Content-Type", "application/json"). SetHeader("Authorization", "Bearer "+loginResp.Header().Get("Token")). + SetHeader("Content-Type", "application/json"). + SetHeader("User-Agent", "certimate"). SetBody(map[string]any{ "channel_id": n.config.ChannelId, "props": map[string]interface{}{ diff --git a/internal/pkg/core/notifier/providers/pushover/pushover.go b/internal/pkg/core/notifier/providers/pushover/pushover.go index 827a45d6..48238608 100644 --- a/internal/pkg/core/notifier/providers/pushover/pushover.go +++ b/internal/pkg/core/notifier/providers/pushover/pushover.go @@ -53,6 +53,7 @@ func (n *NotifierProvider) Notify(ctx context.Context, subject string, message s req := n.httpClient.R(). SetContext(ctx). SetHeader("Content-Type", "application/json"). + SetHeader("User-Agent", "certimate"). SetBody(map[string]any{ "title": subject, "message": message, diff --git a/internal/pkg/core/notifier/providers/pushplus/pushplus.go b/internal/pkg/core/notifier/providers/pushplus/pushplus.go index 79a27d49..025e1620 100644 --- a/internal/pkg/core/notifier/providers/pushplus/pushplus.go +++ b/internal/pkg/core/notifier/providers/pushplus/pushplus.go @@ -52,6 +52,7 @@ func (n *NotifierProvider) Notify(ctx context.Context, subject string, message s req := n.httpClient.R(). SetContext(ctx). SetHeader("Content-Type", "application/json"). + SetHeader("User-Agent", "certimate"). SetBody(map[string]any{ "title": subject, "content": message, diff --git a/internal/pkg/core/notifier/providers/serverchan/serverchan.go b/internal/pkg/core/notifier/providers/serverchan/serverchan.go index d1897ab4..0eb9bc24 100644 --- a/internal/pkg/core/notifier/providers/serverchan/serverchan.go +++ b/internal/pkg/core/notifier/providers/serverchan/serverchan.go @@ -51,6 +51,7 @@ func (n *NotifierProvider) Notify(ctx context.Context, subject string, message s req := n.httpClient.R(). SetContext(ctx). SetHeader("Content-Type", "application/json"). + SetHeader("User-Agent", "certimate"). SetBody(map[string]any{ "text": subject, "desp": message, diff --git a/internal/pkg/core/notifier/providers/slackbot/slackbot.go b/internal/pkg/core/notifier/providers/slackbot/slackbot.go index 7b16ad25..a453f8f1 100644 --- a/internal/pkg/core/notifier/providers/slackbot/slackbot.go +++ b/internal/pkg/core/notifier/providers/slackbot/slackbot.go @@ -52,8 +52,9 @@ func (n *NotifierProvider) Notify(ctx context.Context, subject string, message s // REF: https://docs.slack.dev/messaging/sending-and-scheduling-messages#publishing req := n.httpClient.R(). SetContext(ctx). - SetHeader("Content-Type", "application/json"). SetHeader("Authorization", "Bearer "+n.config.BotToken). + SetHeader("Content-Type", "application/json"). + SetHeader("User-Agent", "certimate"). SetBody(map[string]any{ "token": n.config.BotToken, "channel": n.config.ChannelId, diff --git a/internal/pkg/core/notifier/providers/telegrambot/telegrambot.go b/internal/pkg/core/notifier/providers/telegrambot/telegrambot.go index 39e1f705..ef99c66b 100644 --- a/internal/pkg/core/notifier/providers/telegrambot/telegrambot.go +++ b/internal/pkg/core/notifier/providers/telegrambot/telegrambot.go @@ -53,6 +53,7 @@ func (n *NotifierProvider) Notify(ctx context.Context, subject string, message s req := n.httpClient.R(). SetContext(ctx). SetHeader("Content-Type", "application/json"). + SetHeader("User-Agent", "certimate"). SetBody(map[string]any{ "chat_id": n.config.ChatId, "text": subject + "\n" + message, diff --git a/internal/pkg/core/notifier/providers/wecombot/wecombot.go b/internal/pkg/core/notifier/providers/wecombot/wecombot.go index 8f51a70a..d6f86ef5 100644 --- a/internal/pkg/core/notifier/providers/wecombot/wecombot.go +++ b/internal/pkg/core/notifier/providers/wecombot/wecombot.go @@ -51,6 +51,7 @@ func (n *NotifierProvider) Notify(ctx context.Context, subject string, message s req := n.httpClient.R(). SetContext(ctx). SetHeader("Content-Type", "application/json"). + SetHeader("User-Agent", "certimate"). SetBody(map[string]any{ "msgtype": "text", "text": map[string]string{ diff --git a/internal/pkg/sdk3rd/1panel/client.go b/internal/pkg/sdk3rd/1panel/client.go index 3fe549a0..8090340e 100644 --- a/internal/pkg/sdk3rd/1panel/client.go +++ b/internal/pkg/sdk3rd/1panel/client.go @@ -14,8 +14,6 @@ import ( ) type Client struct { - apiKey string - client *resty.Client } @@ -25,7 +23,8 @@ func NewClient(serverUrl, apiVersion, apiKey string) *Client { } client := resty.New(). - SetBaseURL(strings.TrimRight(serverUrl, "/") + "/api/" + apiVersion). + SetBaseURL(strings.TrimRight(serverUrl, "/")+"/api/"+apiVersion). + SetHeader("User-Agent", "certimate"). SetPreRequestHook(func(c *resty.Client, req *http.Request) error { timestamp := fmt.Sprintf("%d", time.Now().Unix()) tokenMd5 := md5.Sum([]byte("1panel" + apiKey + timestamp)) diff --git a/internal/pkg/sdk3rd/baishan/client.go b/internal/pkg/sdk3rd/baishan/client.go index b3e428ee..7922096e 100644 --- a/internal/pkg/sdk3rd/baishan/client.go +++ b/internal/pkg/sdk3rd/baishan/client.go @@ -19,7 +19,8 @@ type Client struct { func NewClient(apiToken string) *Client { client := resty.New(). SetBaseURL("https://cdn.api.baishan.com"). - SetHeader("token", apiToken) + SetHeader("User-Agent", "certimate"). + SetHeader("Token", apiToken) return &Client{ client: client, diff --git a/internal/pkg/sdk3rd/btpanel/client.go b/internal/pkg/sdk3rd/btpanel/client.go index aafee04f..7faa46c0 100644 --- a/internal/pkg/sdk3rd/btpanel/client.go +++ b/internal/pkg/sdk3rd/btpanel/client.go @@ -21,7 +21,9 @@ type Client struct { func NewClient(serverUrl, apiKey string) *Client { client := resty.New(). - SetBaseURL(strings.TrimRight(serverUrl, "/")) + SetBaseURL(strings.TrimRight(serverUrl, "/")). + SetHeader("Content-Type", "application/x-www-form-urlencoded"). + SetHeader("User-Agent", "certimate") return &Client{ apiKey: apiKey, @@ -77,9 +79,7 @@ func (c *Client) sendRequest(path string, params interface{}) (*resty.Response, data["request_time"] = fmt.Sprintf("%d", timestamp) data["request_token"] = c.generateSignature(fmt.Sprintf("%d", timestamp)) - req := c.client.R(). - SetHeader("Content-Type", "application/x-www-form-urlencoded"). - SetFormData(data) + req := c.client.R().SetFormData(data) resp, err := req.Post(path) if err != nil { return resp, fmt.Errorf("baota api error: failed to send request: %w", err) diff --git a/internal/pkg/sdk3rd/btwaf/client.go b/internal/pkg/sdk3rd/btwaf/client.go index 083db0c1..4bf76b16 100644 --- a/internal/pkg/sdk3rd/btwaf/client.go +++ b/internal/pkg/sdk3rd/btwaf/client.go @@ -19,7 +19,9 @@ type Client struct { func NewClient(serverUrl, apiKey string) *Client { client := resty.New(). - SetBaseURL(strings.TrimRight(serverUrl, "/") + "/api"). + SetBaseURL(strings.TrimRight(serverUrl, "/")+"/api"). + SetHeader("Content-Type", "application/json"). + SetHeader("User-Agent", "certimate"). SetPreRequestHook(func(c *resty.Client, req *http.Request) error { timestamp := fmt.Sprintf("%d", time.Now().Unix()) keyMd5 := md5.Sum([]byte(apiKey)) @@ -48,9 +50,7 @@ func (c *Client) WithTLSConfig(config *tls.Config) *Client { } func (c *Client) sendRequest(path string, params interface{}) (*resty.Response, error) { - req := c.client.R(). - SetHeader("Content-Type", "application/json"). - SetBody(params) + req := c.client.R().SetBody(params) resp, err := req.Post(path) if err != nil { return resp, fmt.Errorf("baota api error: failed to send request: %w", err) diff --git a/internal/pkg/sdk3rd/bunny/client.go b/internal/pkg/sdk3rd/bunny/client.go index 8d50e1fc..1efa2236 100644 --- a/internal/pkg/sdk3rd/bunny/client.go +++ b/internal/pkg/sdk3rd/bunny/client.go @@ -17,6 +17,7 @@ type Client struct { func NewClient(apiToken string) *Client { client := resty.New(). SetBaseURL("https://api.bunny.net"). + SetHeader("User-Agent", "certimate"). SetHeader("AccessKey", apiToken) return &Client{ diff --git a/internal/pkg/sdk3rd/cachefly/client.go b/internal/pkg/sdk3rd/cachefly/client.go index 342e329d..cf29e833 100644 --- a/internal/pkg/sdk3rd/cachefly/client.go +++ b/internal/pkg/sdk3rd/cachefly/client.go @@ -17,7 +17,7 @@ type Client struct { func NewClient(apiToken string) *Client { client := resty.New(). SetBaseURL("https://api.cachefly.com/api/2.5"). - SetHeader("x-cf-authorization", "Bearer "+apiToken) + SetHeader("X-CF-Authorization", "Bearer "+apiToken) return &Client{ client: client, diff --git a/internal/pkg/sdk3rd/cdnfly/client.go b/internal/pkg/sdk3rd/cdnfly/client.go index 2dabf6fd..6026d246 100644 --- a/internal/pkg/sdk3rd/cdnfly/client.go +++ b/internal/pkg/sdk3rd/cdnfly/client.go @@ -18,8 +18,9 @@ type Client struct { func NewClient(serverUrl, apiKey, apiSecret string) *Client { client := resty.New(). SetBaseURL(strings.TrimRight(serverUrl, "/")). - SetHeader("api-key", apiKey). - SetHeader("api-secret", apiSecret) + SetHeader("User-Agent", "certimate"). + SetHeader("API-Key", apiKey). + SetHeader("API-Secret", apiSecret) return &Client{ client: client, diff --git a/internal/pkg/sdk3rd/dcloud/unicloud/client.go b/internal/pkg/sdk3rd/dcloud/unicloud/client.go index 1e0f3728..8db4a792 100644 --- a/internal/pkg/sdk3rd/dcloud/unicloud/client.go +++ b/internal/pkg/sdk3rd/dcloud/unicloud/client.go @@ -51,6 +51,7 @@ func NewClient(username, password string) *Client { client.serverlessClient = resty.New() client.apiClient = resty.New(). SetBaseURL("https://unicloud-api.dcloud.net.cn/unicloud/api"). + SetHeader("User-Agent", "certimate"). SetPreRequestHook(func(c *resty.Client, req *http.Request) error { if client.apiUserToken != "" { req.Header.Set("Token", client.apiUserToken) @@ -173,9 +174,9 @@ func (c *Client) invokeServerless(endpoint, clientSecret, appId, spaceId, target sign := c.generateSignature(payload, clientSecret) req := c.serverlessClient.R(). + SetHeader("Content-Type", "application/json"). SetHeader("Origin", "https://unicloud.dcloud.net.cn"). SetHeader("Referer", "https://unicloud.dcloud.net.cn"). - SetHeader("Content-Type", "application/json"). SetHeader("X-Client-Info", string(clientInfoJsonb)). SetHeader("X-Client-Token", c.serverlessJwtToken). SetHeader("X-Serverless-Sign", sign). diff --git a/internal/pkg/sdk3rd/dnsla/client.go b/internal/pkg/sdk3rd/dnsla/client.go index d9a86fc5..accd36d9 100644 --- a/internal/pkg/sdk3rd/dnsla/client.go +++ b/internal/pkg/sdk3rd/dnsla/client.go @@ -17,7 +17,8 @@ type Client struct { func NewClient(apiId, apiSecret string) *Client { client := resty.New(). SetBaseURL("https://api.dns.la/api"). - SetBasicAuth(apiId, apiSecret) + SetBasicAuth(apiId, apiSecret). + SetHeader("User-Agent", "certimate") return &Client{ client: client, diff --git a/internal/pkg/sdk3rd/flexcdn/client.go b/internal/pkg/sdk3rd/flexcdn/client.go index b478ffac..0844ffa5 100644 --- a/internal/pkg/sdk3rd/flexcdn/client.go +++ b/internal/pkg/sdk3rd/flexcdn/client.go @@ -32,6 +32,7 @@ func NewClient(serverUrl, apiRole, accessKeyId, accessKey string) *Client { } client.client = resty.New(). SetBaseURL(strings.TrimRight(serverUrl, "/")). + SetHeader("User-Agent", "certimate"). SetPreRequestHook(func(c *resty.Client, req *http.Request) error { if client.accessToken != "" { req.Header.Set("X-Cloud-Access-Token", client.accessToken) diff --git a/internal/pkg/sdk3rd/gname/client.go b/internal/pkg/sdk3rd/gname/client.go index ef00e699..843785a5 100644 --- a/internal/pkg/sdk3rd/gname/client.go +++ b/internal/pkg/sdk3rd/gname/client.go @@ -20,7 +20,10 @@ type Client struct { } func NewClient(appId, appKey string) *Client { - client := resty.New() + client := resty.New(). + SetBaseURL("http://api.gname.com"). + SetHeader("Content-Type", "application/x-www-form-urlencoded"). + SetHeader("User-Agent", "certimate") return &Client{ appId: appId, @@ -74,11 +77,8 @@ func (c *Client) sendRequest(path string, params interface{}) (*resty.Response, data["gntime"] = fmt.Sprintf("%d", time.Now().Unix()) data["gntoken"] = c.generateSignature(data) - url := "http://api.gname.com" + path - req := c.client.R(). - SetHeader("Content-Type", "application/x-www-form-urlencoded"). - SetFormData(data) - resp, err := req.Post(url) + req := c.client.R().SetFormData(data) + resp, err := req.Post(path) if err != nil { return resp, fmt.Errorf("gname api error: failed to send request: %w", err) } else if resp.IsError() { diff --git a/internal/pkg/sdk3rd/goedge/client.go b/internal/pkg/sdk3rd/goedge/client.go index 3cd4900a..bc87734a 100644 --- a/internal/pkg/sdk3rd/goedge/client.go +++ b/internal/pkg/sdk3rd/goedge/client.go @@ -32,6 +32,7 @@ func NewClient(serverUrl, apiRole, accessKeyId, accessKey string) *Client { } client.client = resty.New(). SetBaseURL(strings.TrimRight(serverUrl, "/")). + SetHeader("User-Agent", "certimate"). SetPreRequestHook(func(c *resty.Client, req *http.Request) error { if client.accessToken != "" { req.Header.Set("X-Edge-Access-Token", client.accessToken) diff --git a/internal/pkg/sdk3rd/lecdn/v3/client/client.go b/internal/pkg/sdk3rd/lecdn/v3/client/client.go index 3fa822eb..4af04d4f 100644 --- a/internal/pkg/sdk3rd/lecdn/v3/client/client.go +++ b/internal/pkg/sdk3rd/lecdn/v3/client/client.go @@ -28,7 +28,8 @@ func NewClient(serverUrl, username, password string) *Client { password: password, } client.client = resty.New(). - SetBaseURL(strings.TrimRight(serverUrl, "/") + "/prod-api"). + SetBaseURL(strings.TrimRight(serverUrl, "/")+"/prod-api"). + SetHeader("User-Agent", "certimate"). SetPreRequestHook(func(c *resty.Client, req *http.Request) error { if client.accessToken != "" { req.Header.Set("Authorization", "Bearer "+client.accessToken) diff --git a/internal/pkg/sdk3rd/lecdn/v3/master/client.go b/internal/pkg/sdk3rd/lecdn/v3/master/client.go index ee1abaca..dc033634 100644 --- a/internal/pkg/sdk3rd/lecdn/v3/master/client.go +++ b/internal/pkg/sdk3rd/lecdn/v3/master/client.go @@ -28,7 +28,8 @@ func NewClient(serverUrl, username, password string) *Client { password: password, } client.client = resty.New(). - SetBaseURL(strings.TrimRight(serverUrl, "/") + "/prod-api"). + SetBaseURL(strings.TrimRight(serverUrl, "/")+"/prod-api"). + SetHeader("User-Agent", "certimate"). SetPreRequestHook(func(c *resty.Client, req *http.Request) error { if client.accessToken != "" { req.Header.Set("Authorization", "Bearer "+client.accessToken) diff --git a/internal/pkg/sdk3rd/netlify/client.go b/internal/pkg/sdk3rd/netlify/client.go index d270e35e..bf3f4ad6 100644 --- a/internal/pkg/sdk3rd/netlify/client.go +++ b/internal/pkg/sdk3rd/netlify/client.go @@ -17,7 +17,8 @@ type Client struct { func NewClient(apiToken string) *Client { client := resty.New(). SetBaseURL("https://api.netlify.com/api/v1"). - SetHeader("Authorization", "Bearer "+apiToken) + SetHeader("Authorization", "Bearer "+apiToken). + SetHeader("User-Agent", "certimate") return &Client{ client: client, diff --git a/internal/pkg/sdk3rd/rainyun/client.go b/internal/pkg/sdk3rd/rainyun/client.go index 80113f0d..cf9e1895 100644 --- a/internal/pkg/sdk3rd/rainyun/client.go +++ b/internal/pkg/sdk3rd/rainyun/client.go @@ -17,7 +17,8 @@ type Client struct { func NewClient(apiKey string) *Client { client := resty.New(). SetBaseURL("https://api.v2.rainyun.com"). - SetHeader("x-api-key", apiKey) + SetHeader("User-Agent", "certimate"). + SetHeader("X-API-Key", apiKey) return &Client{ client: client, diff --git a/internal/pkg/sdk3rd/ratpanel/client.go b/internal/pkg/sdk3rd/ratpanel/client.go index f1d20359..e1abb6c5 100644 --- a/internal/pkg/sdk3rd/ratpanel/client.go +++ b/internal/pkg/sdk3rd/ratpanel/client.go @@ -25,6 +25,7 @@ func NewClient(serverUrl string, accessTokenId int32, accessToken string) *Clien SetBaseURL(strings.TrimRight(serverUrl, "/")+"/api"). SetHeader("Accept", "application/json"). SetHeader("Content-Type", "application/json"). + SetHeader("User-Agent", "certimate"). SetPreRequestHook(func(c *resty.Client, req *http.Request) error { var body []byte var err error diff --git a/internal/pkg/sdk3rd/safeline/client.go b/internal/pkg/sdk3rd/safeline/client.go index 93d884a3..05ee6d1a 100644 --- a/internal/pkg/sdk3rd/safeline/client.go +++ b/internal/pkg/sdk3rd/safeline/client.go @@ -17,6 +17,8 @@ type Client struct { func NewClient(serverUrl, apiToken string) *Client { client := resty.New(). SetBaseURL(strings.TrimRight(serverUrl, "/")). + SetHeader("Content-Type", "application/json"). + SetHeader("User-Agent", "certimate"). SetHeader("X-SLCE-API-TOKEN", apiToken) return &Client{ @@ -35,9 +37,7 @@ func (c *Client) WithTLSConfig(config *tls.Config) *Client { } func (c *Client) sendRequest(path string, params interface{}) (*resty.Response, error) { - req := c.client.R(). - SetHeader("Content-Type", "application/json"). - SetBody(params) + req := c.client.R().SetBody(params) resp, err := req.Post(path) if err != nil { return resp, fmt.Errorf("safeline api error: failed to send request: %w", err) diff --git a/internal/pkg/sdk3rd/upyun/console/client.go b/internal/pkg/sdk3rd/upyun/console/client.go index b207549e..e9202d91 100644 --- a/internal/pkg/sdk3rd/upyun/console/client.go +++ b/internal/pkg/sdk3rd/upyun/console/client.go @@ -26,6 +26,7 @@ func NewClient(username, password string) *Client { } client.client = resty.New(). SetBaseURL("https://console.upyun.com"). + SetHeader("User-Agent", "certimate"). SetPreRequestHook(func(c *resty.Client, req *http.Request) error { if client.loginCookie != "" { req.Header.Set("Cookie", client.loginCookie) diff --git a/internal/pkg/sdk3rd/wangsu/cdnpro/api.go b/internal/pkg/sdk3rd/wangsu/cdnpro/api.go index c6f8da04..c45e6921 100644 --- a/internal/pkg/sdk3rd/wangsu/cdnpro/api.go +++ b/internal/pkg/sdk3rd/wangsu/cdnpro/api.go @@ -11,7 +11,7 @@ import ( func (c *Client) CreateCertificate(req *CreateCertificateRequest) (*CreateCertificateResponse, error) { resp := &CreateCertificateResponse{} rres, err := c.client.SendRequestWithResult(http.MethodPost, "/cdn/certificates", req, resp, func(r *resty.Request) { - r.SetHeader("x-cnc-timestamp", fmt.Sprintf("%d", req.Timestamp)) + r.SetHeader("X-CNC-Timestamp", fmt.Sprintf("%d", req.Timestamp)) }) if err != nil { return resp, err @@ -28,7 +28,7 @@ func (c *Client) UpdateCertificate(certificateId string, req *UpdateCertificateR resp := &UpdateCertificateResponse{} rres, err := c.client.SendRequestWithResult(http.MethodPatch, fmt.Sprintf("/cdn/certificates/%s", url.PathEscape(certificateId)), req, resp, func(r *resty.Request) { - r.SetHeader("x-cnc-timestamp", fmt.Sprintf("%d", req.Timestamp)) + r.SetHeader("X-CNC-Timestamp", fmt.Sprintf("%d", req.Timestamp)) }) if err != nil { return resp, err diff --git a/internal/pkg/sdk3rd/wangsu/openapi/client.go b/internal/pkg/sdk3rd/wangsu/openapi/client.go index a8f4f2af..09723032 100644 --- a/internal/pkg/sdk3rd/wangsu/openapi/client.go +++ b/internal/pkg/sdk3rd/wangsu/openapi/client.go @@ -30,9 +30,10 @@ type Result interface { func NewClient(accessKey, secretKey string) *Client { client := resty.New(). SetBaseURL("https://open.chinanetcenter.com"). - SetHeader("Host", "open.chinanetcenter.com"). SetHeader("Accept", "application/json"). SetHeader("Content-Type", "application/json"). + SetHeader("Host", "open.chinanetcenter.com"). + SetHeader("User-Agent", "certimate"). SetPreRequestHook(func(c *resty.Client, req *http.Request) error { // Step 1: Get request method method := req.Method @@ -85,7 +86,7 @@ func NewClient(accessKey, secretKey string) *Client { // Step 6: Get timestamp var reqtime time.Time - timestampString := req.Header.Get("x-cnc-timestamp") + timestampString := req.Header.Get("X-CNC-Timestamp") if timestampString == "" { reqtime = time.Now().UTC() timestampString = fmt.Sprintf("%d", reqtime.Unix()) @@ -111,9 +112,9 @@ func NewClient(accessKey, secretKey string) *Client { signHex := strings.ToLower(hex.EncodeToString(sign)) // Step 9: Add headers to request - req.Header.Set("x-cnc-accesskey", accessKey) - req.Header.Set("x-cnc-timestamp", timestampString) - req.Header.Set("x-cnc-auth-method", "AKSK") + req.Header.Set("X-CNC-AccessKey", accessKey) + req.Header.Set("X-CNC-Timestamp", timestampString) + req.Header.Set("X-CNC-Auth-Method", "AKSK") req.Header.Set("Authorization", fmt.Sprintf("%s Credential=%s, SignedHeaders=%s, Signature=%s", SignAlgorithmHeader, accessKey, signedHeaders, signHex)) req.Header.Set("Date", reqtime.Format("Mon, 02 Jan 2006 15:04:05 GMT")) @@ -173,7 +174,7 @@ func (c *Client) SendRequestWithResult(method string, path string, params interf if err != nil { if resp != nil { json.Unmarshal(resp.Body(), &result) - result.SetRequestId(resp.Header().Get("x-cnc-request-id")) + result.SetRequestId(resp.Header().Get("X-CNC-Request-Id")) } return resp, err } @@ -185,6 +186,6 @@ func (c *Client) SendRequestWithResult(method string, path string, params interf } } - result.SetRequestId(resp.Header().Get("x-cnc-request-id")) + result.SetRequestId(resp.Header().Get("X-CNC-Request-Id")) return resp, nil }