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