Commit 862ea226 authored by Shuai's avatar Shuai

优化设置参数

parent ff92f22d
......@@ -100,7 +100,7 @@ func NewBeegoRequest(rawurl, method string) *BeegoHttpRequest {
return &BeegoHttpRequest{
url: rawurl,
req: &req,
params: map[string]interface{}{},
params: map[string][]string{},
files: map[string]string{},
setting: defaultSetting,
resp: &resp,
......@@ -150,7 +150,7 @@ type BeegoHttpSettings struct {
type BeegoHttpRequest struct {
url string
req *http.Request
params map[string]interface{}
params map[string][]string
files map[string]string
setting BeegoHttpSettings
resp *http.Response
......@@ -272,8 +272,12 @@ func (b *BeegoHttpRequest) SetProxy(proxy func(*http.Request) (*url.URL, error))
// Param adds query param in to request.
// params build query string as ?key1=value1&key2=value2...
func (b *BeegoHttpRequest) Param(key string, value interface{}) *BeegoHttpRequest {
b.params[key] = value
func (b *BeegoHttpRequest) Param(key, value string) *BeegoHttpRequest {
if param, ok := b.params[key]; ok {
b.params[key] = append(param, value)
} else {
b.params[key] = []string{value}
}
return b
}
......@@ -348,15 +352,10 @@ func (b *BeegoHttpRequest) buildUrl(paramBody string) {
}
}
for k, v := range b.params {
switch v.(type) {
case string:
bodyWriter.WriteField(k, v.(string))
case []string:
for _, vv := range v.([]string) {
for _, vv := range v {
bodyWriter.WriteField(k, vv)
}
}
}
bodyWriter.Close()
pw.Close()
}()
......@@ -390,21 +389,13 @@ func (b *BeegoHttpRequest) SendOut() (*http.Response, error) {
if len(b.params) > 0 {
var buf bytes.Buffer
for k, v := range b.params {
switch v.(type) {
case string:
buf.WriteString(url.QueryEscape(k))
buf.WriteByte('=')
buf.WriteString(url.QueryEscape(v.(string)))
buf.WriteByte('&')
case []string:
for _, vv := range v.([]string) {
for _, vv := range v {
buf.WriteString(url.QueryEscape(k))
buf.WriteByte('=')
buf.WriteString(url.QueryEscape(vv))
buf.WriteByte('&')
}
}
}
paramBody = buf.String()
paramBody = paramBody[0 : len(paramBody)-1]
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment