common/http增加headers参数

This commit is contained in:
2025-12-23 16:33:57 +08:00
parent 61223b0546
commit 3dc3ebc9ad

View File

@@ -15,7 +15,6 @@ import (
"github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/net/ghttp" "github.com/gogf/gf/v2/net/ghttp"
"github.com/gogf/gf/v2/net/gsvc" "github.com/gogf/gf/v2/net/gsvc"
"github.com/gogf/gf/v2/os/glog"
"github.com/gogf/gf/v2/os/gtime" "github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/gconv" "github.com/gogf/gf/v2/util/gconv"
) )
@@ -60,21 +59,18 @@ func RouteRegister(controllers []interface{}) {
} }
go Httpserver.Run() go Httpserver.Run()
} }
func doRequest(ctx context.Context, method string, url string, target any, data ...any) (err error) { func doRequest(ctx context.Context, method string, url string, headers map[string]string, target any, data ...any) (err error) {
err = utils.ValidStructPtr(target) err = utils.ValidStructPtr(target)
if err != nil { if err != nil {
return return
} }
Httpclient.SetHeaderMap(headers)
Httpclient.SetHeader("Authorization", g.RequestFromCtx(ctx).GetHeader("Authorization")) Httpclient.SetHeader("Authorization", g.RequestFromCtx(ctx).GetHeader("Authorization"))
response, err := Httpclient.DoRequest(ctx, method, url, data) response, err := Httpclient.DoRequest(ctx, method, url, data)
defer response.Close()
if err != nil { if err != nil {
return return
} }
defer func() {
if err = response.Close(); err != nil {
glog.Error(ctx, err)
}
}()
result := response.ReadAll() result := response.ReadAll()
resultStrut := &ghttp.DefaultHandlerResponse{} resultStrut := &ghttp.DefaultHandlerResponse{}
if gconv.Struct(result, &resultStrut); resultStrut.Code != 200 { if gconv.Struct(result, &resultStrut); resultStrut.Code != 200 {
@@ -84,19 +80,19 @@ func doRequest(ctx context.Context, method string, url string, target any, data
} }
return return
} }
func Get(ctx context.Context, url string, target any, data ...any) (err error) { func Get(ctx context.Context, url string, headers map[string]string, target any, data ...any) (err error) {
err = doRequest(ctx, http.MethodGet, url, target, data) err = doRequest(ctx, http.MethodGet, url, headers, target, data)
return return
} }
func Post(ctx context.Context, url string, target any, data ...any) (err error) { func Post(ctx context.Context, url string, headers map[string]string, target any, data ...any) (err error) {
err = doRequest(ctx, http.MethodPost, url, target, data) err = doRequest(ctx, http.MethodPost, url, headers, target, data)
return return
} }
func Put(ctx context.Context, url string, target any, data ...any) (err error) { func Put(ctx context.Context, url string, headers map[string]string, target any, data ...any) (err error) {
err = doRequest(ctx, http.MethodPut, url, target, data) err = doRequest(ctx, http.MethodPut, url, headers, target, data)
return return
} }
func Delete(ctx context.Context, url string, target any, data ...any) (err error) { func Delete(ctx context.Context, url string, headers map[string]string, target any, data ...any) (err error) {
err = doRequest(ctx, http.MethodPut, url, target, data) err = doRequest(ctx, http.MethodPut, url, headers, target, data)
return return
} }