我有如下代码:
client := &http.Client{}
/* Authenticate */
req, err := http.NewRequest("GET", "http://164.99.113.32/Authenticate", nil)
req.SetBasicAuth("<username>","<password>")
resp, err := client.Do(req)
if err != nil {
fmt.Printf("Error : %s", err)
}
/* Get Details */
req.URL, _ = url.Parse("http://164.99.113.32/Details")
resp, err = client.Do(req)
if err != nil {
fmt.Printf("Error : %s", err)
}
现在,第二个http调用失败了,返回了401拒绝访问错误。另一个REST客户端(一个火狐浏览器插件)可以正确地从服务器获取详细信息,所以我知道服务器方面没有问题。我需要传递一些会话字符串或者我们在之前请求中得到的某些东西吗?
resp, err = client.Do(req)
,defer resp.Body.close()
和if resp.StatusCode != 200 { log.Fatal("HTTP response code is not 200") }
来解决。因此,可以使用这种方法跟踪响应。 - laimison