main
kzkzzzz 2025-07-15 22:33:08 +08:00
parent 7f65f040c4
commit eb6557e0d8
1 changed files with 19 additions and 11 deletions

View File

@ -60,7 +60,8 @@ type Request struct {
ctx context.Context ctx context.Context
header http.Header header http.Header
body any body any
query map[string][]string mapQuery map[string]string
urlQuery url.Values
httpClient *HttpClient httpClient *HttpClient
contentType string contentType string
} }
@ -123,8 +124,9 @@ func (h *HttpClient) NewRequest(ctx context.Context) *Request {
r := &Request{ r := &Request{
ctx: ctx, ctx: ctx,
header: nil, header: nil,
query: nil, mapQuery: nil,
httpClient: h, httpClient: h,
urlQuery: url.Values{},
} }
return r return r
} }
@ -151,21 +153,26 @@ func (r *Request) SetBody(body any) *Request {
return r return r
} }
func (r *Request) SetQueryParam(k string, v []string) *Request { func (r *Request) SetQueryParam(k string, v string) *Request {
if r.query == nil { if r.mapQuery == nil {
r.query = make(map[string][]string) r.mapQuery = make(map[string]string)
} }
r.query[k] = v r.mapQuery[k] = v
return r return r
} }
func (r *Request) SetQueryParams(params map[string][]string) *Request { func (r *Request) SetQueryParams(params map[string]string) *Request {
for k, v := range params { for k, v := range params {
r.SetQueryParam(k, v) r.SetQueryParam(k, v)
} }
return r return r
} }
func (r *Request) SetUrlQueryParam(k string, v string) *Request {
r.urlQuery.Add(k, v)
return r
}
func (r *Request) SetHeader(k, v string) *Request { func (r *Request) SetHeader(k, v string) *Request {
if r.header == nil { if r.header == nil {
r.header = http.Header{} r.header = http.Header{}
@ -219,10 +226,11 @@ func (r *Request) Do(method, rawUrl string) (*Response, error) {
query := req.URL.Query() query := req.URL.Query()
for k, v := range r.query { for k, v := range r.mapQuery {
for _, vv := range v { query.Add(k, v)
query.Add(k, vv)
} }
for k, v := range r.urlQuery {
query[k] = v
} }
req.URL.RawQuery = query.Encode() req.URL.RawQuery = query.Encode()