我这样创建我的表单:
form := url.Values{}
form.Add("region", "San Francisco")
if len(params) > 0 {
for i := 0; i < len(params); i += 2 {
form.Add(params[i], params[i+1])
}
testLog.Infof("form %v", form)
现在如果我使用
resp, err = http.PostForm(address+r.Path, form)
然后一切正常,我得到一个预期的cookie响应.
但是,我想添加一个标题,在这种情况下我不能使用PostForm
,因此我手动创建了POST request
,如下所示:
req, err := http.NewRequest("POST", address+r.Path, strings.NewReader(form.Encode()))
然后,我向标头添加内容并发送请求
req.Header.Add("region", "San Francisco")
resp, err = http.DefaultClient.Do(req)
但是没有收到表单,并且我的响应不包含任何cookie.
当我打印req
的时候,表单看起来是nil
:
&{POST http://localhost:8081/login HTTP/1.1 1 1 map[Region:[San Francisco]] {0xc420553600} 78 [] false localhost:8081 map[] map[] <nil> map[] <nil> <nil> <nil> <nil>}