update fix

This commit is contained in:
huangsimin 2018-10-24 16:59:17 +08:00
parent 01df404ead
commit 13dfdee51c
2 changed files with 21 additions and 7 deletions

View File

@ -38,6 +38,7 @@ type Session struct {
auth *BasicAuth auth *BasicAuth
Header http.Header Header http.Header
Query url.Values
} }
const ( const (

View File

@ -99,9 +99,9 @@ func (wf *Workflow) SetURL(srcURL string) *Workflow {
// GetURLQuery 获取Query参数 // GetURLQuery 获取Query参数
func (wf *Workflow) GetURLQuery() url.Values { func (wf *Workflow) GetURLQuery() url.Values {
if wf.ParsedURL != nil { if wf.ParsedURL != nil {
return wf.ParsedURL.Query() vs := wf.ParsedURL.Query()
return mergeMapList(wf.session.Query, vs)
} }
return nil return nil
} }
@ -194,10 +194,12 @@ func (wf *Workflow) SetBodyParams(params ...interface{}) *Workflow {
return wf return wf
} }
// setHeaderRequest 设置request的头 func mergeMapList(header1, header2 map[string][]string) map[string][]string {
func setHeaderRequest(req *http.Request, wf *Workflow) {
set := make(map[string]map[string]int) set := make(map[string]map[string]int)
for key, values := range wf.session.Header { merged := make(map[string][]string)
for key, values := range header1 {
for _, v := range values { for _, v := range values {
if vs, ok := set[key]; ok { if vs, ok := set[key]; ok {
vs[v] = 1 vs[v] = 1
@ -207,7 +209,7 @@ func setHeaderRequest(req *http.Request, wf *Workflow) {
} }
} }
} }
for key, values := range wf.Header { for key, values := range header2 {
for _, v := range values { for _, v := range values {
if vs, ok := set[key]; ok { if vs, ok := set[key]; ok {
vs[v] = 1 vs[v] = 1
@ -220,10 +222,21 @@ func setHeaderRequest(req *http.Request, wf *Workflow) {
for key, mvalue := range set { for key, mvalue := range set {
for v := range mvalue { for v := range mvalue {
req.Header.Add(key, v) // merged.Add(key, v)
if mergeValue, ok := merged[key]; ok {
merged[key] = append(mergeValue, v)
} else {
merged[key] = append(mergeValue, v)
}
} }
} }
return merged
}
// setHeaderRequest 设置request的头
func setHeaderRequest(req *http.Request, wf *Workflow) {
req.Header = mergeMapList(wf.session.Header, wf.Header)
} }
// setHeaderRequest 设置request的临时Cookie, 永久需要在session上设置cookie // setHeaderRequest 设置request的临时Cookie, 永久需要在session上设置cookie