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
Header http.Header
Query url.Values
}
const (

View File

@ -99,9 +99,9 @@ func (wf *Workflow) SetURL(srcURL string) *Workflow {
// GetURLQuery 获取Query参数
func (wf *Workflow) GetURLQuery() url.Values {
if wf.ParsedURL != nil {
return wf.ParsedURL.Query()
vs := wf.ParsedURL.Query()
return mergeMapList(wf.session.Query, vs)
}
return nil
}
@ -194,10 +194,12 @@ func (wf *Workflow) SetBodyParams(params ...interface{}) *Workflow {
return wf
}
// setHeaderRequest 设置request的头
func setHeaderRequest(req *http.Request, wf *Workflow) {
func mergeMapList(header1, header2 map[string][]string) map[string][]string {
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 {
if vs, ok := set[key]; ok {
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 {
if vs, ok := set[key]; ok {
vs[v] = 1
@ -220,10 +222,21 @@ func setHeaderRequest(req *http.Request, wf *Workflow) {
for key, mvalue := range set {
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