diff --git a/myhttp/httpc/httpclient.go b/myhttp/httpc/httpclient.go index 351e4f5..65fc6bd 100644 --- a/myhttp/httpc/httpclient.go +++ b/myhttp/httpc/httpclient.go @@ -60,7 +60,7 @@ type Request struct { ctx context.Context header http.Header body any - query map[string]string + query map[string][]string httpClient *HttpClient contentType string } @@ -151,15 +151,15 @@ func (r *Request) SetBody(body any) *Request { return r } -func (r *Request) SetQueryParam(k, v string) *Request { +func (r *Request) SetQueryParam(k string, v []string) *Request { if r.query == nil { - r.query = make(map[string]string) + r.query = make(map[string][]string) } r.query[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) } @@ -220,7 +220,9 @@ func (r *Request) Do(method, rawUrl string) (*Response, error) { query := req.URL.Query() for k, v := range r.query { - query.Add(k, v) + for _, vv := range v { + query.Add(k, vv) + } } req.URL.RawQuery = query.Encode()