From 1d8ee18a038c1c67d44787823b226678ab7a786a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Mon, 31 Mar 2025 17:55:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E9=9D=99=E6=80=81=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- httpclient/client.go | 39 +++++++++++++++++++++++++++++++++++++++ httpclient/mesh/mesh.go | 8 ++++---- 2 files changed, 43 insertions(+), 4 deletions(-) diff --git a/httpclient/client.go b/httpclient/client.go index 51a0f41..9c72348 100644 --- a/httpclient/client.go +++ b/httpclient/client.go @@ -9,6 +9,7 @@ package httpclient import ( "fmt" + "git.zhangdeman.cn/zhangdeman/consts" "git.zhangdeman.cn/zhangdeman/network/httpclient/cache" "git.zhangdeman.cn/zhangdeman/network/httpclient/define" "git.zhangdeman.cn/zhangdeman/network/httpclient/validate" @@ -41,6 +42,44 @@ func NewHttpClient(reqConfig *define.Request, cacheInstance cache.ICache) (*Http requestFinishHandler: make([]define.RequestFinishHandler, 0), cacheInstance: cacheInstance, } + if len(reqConfig.Static) > 0 { + for loc, valMap := range reqConfig.Static { + if len(valMap) == 0 { + continue + } + l := strings.ToUpper(loc) + switch l { + case consts.RequestDataLocationHeader.String(): + if reqConfig.Header == nil { + reqConfig.Header = make(map[string]any) + } + for k, v := range valMap { + reqConfig.Header[k] = v + } + case consts.RequestDataLocationCookie.String(): + if reqConfig.Cookie == nil { + reqConfig.Cookie = make(map[string]any) + } + for k, v := range valMap { + reqConfig.Cookie[k] = v + } + case consts.RequestDataLocationBody.String(): + if reqConfig.Body == nil { + reqConfig.Body = make(map[string]any) + } + for k, v := range valMap { + reqConfig.Body[k] = v + } + case consts.RequestDataLocationQuery.String(): + if reqConfig.Query == nil { + reqConfig.Query = make(map[string]any) + } + for k, v := range valMap { + reqConfig.Query[k] = v + } + } + } + } return hc, nil } diff --git a/httpclient/mesh/mesh.go b/httpclient/mesh/mesh.go index 7bd52ac..cb6562f 100644 --- a/httpclient/mesh/mesh.go +++ b/httpclient/mesh/mesh.go @@ -108,10 +108,10 @@ func (c *client) doRequest(apiList []*RequestConfigGroupItem) bool { c.resp.ErrorMessage = err.Error() return false } - apiCfg.RequestCfg.Body = param[consts.RequestDataLocationBody.String()] // body - apiCfg.RequestCfg.Header = param[consts.RequestDataLocationHeader.String()] // header - apiCfg.RequestCfg.Cookie = param[consts.RequestDataLocationCookie.String()] // cookie - apiCfg.RequestCfg.Query = param[consts.RequestDataLocationQuery.String()] // query + apiCfg.RequestCfg.Body = param[strings.ToLower(consts.RequestDataLocationBody.String())] // body + apiCfg.RequestCfg.Header = param[strings.ToLower(consts.RequestDataLocationHeader.String())] // header + apiCfg.RequestCfg.Cookie = param[strings.ToLower(consts.RequestDataLocationCookie.String())] // cookie + apiCfg.RequestCfg.Query = param[strings.ToLower(consts.RequestDataLocationQuery.String())] // query if httpClient, err = httpclient.NewHttpClient(apiCfg.RequestCfg, apiCfg.CacheInstance); nil != err { // 此处获取客户端实例即发生异常, 忽略一切配置, 直接作为全局失败, 后续也不请求了 c.resp.ErrorCode = "-500"