1
我寫了一個cookie getter和setter。現在我想測試它,並編寫了以下測試函數。用cookie測試請求
func TestAuthorizationReader(t *testing.T) {
tw := httptest.NewServer(testWriter())
tr := httptest.NewServer(Use(testReader()))
defer tw.Close()
defer tr.Close()
c := &http.Client{}
rs, err := c.Get(tw.URL)
assert.NoError(t, err, "Should not contain any error")
// Assign cookie to client
url, err := rs.Location()
fmt.Print(url)
assert.NoError(t, err, "Should not contain any error")
//c.Jar.SetCookies(url, rs.Cookies())
}
測試失敗在第二部分,作爲輸出的消息我已經得到了
- FAIL: TestAuthorizationReader (0.05s)
Location: logged_test.go:64
Error: No error is expected but got http: no Location header in response
Messages: Should not contain any error
我不能得到的URL地址指針,做什麼,我錯在這裏?
我怎樣才能用cookie做請求呢? – 2014-12-19 11:51:38
如果你在客戶端設置了'Jar'屬性(使用'net/http/cookiejar'中的實現),客戶端應該自動處理'Set-Cookie'響應頭,並添加適當的'Cookie'請求頭。 – 2014-12-19 11:55:01
@zero_coding請求和響應確實包含設置和讀取cookie的方法。如果您使用帶有不遵循重定向的RoundTripper的客戶端,則可以非常輕鬆地檢查添加和檢查Cookie。如詹姆斯所建議的那樣,將它們塞入罐子中是最好的,如果你不想自己搗弄餅乾。 – Volker 2014-12-19 14:25:55