这在过去几个小时一直困扰着我,我正在尝试获取响应标头值。简单的东西。如果我curl向这个正在运行的服务器发出请求,我会看到标头设置,带有 curl 的-v标志,但是当我尝试使用 Go's 检索标头时response.Header.Get(),它显示一个空白字符串"",标头的长度为 0。更让我沮丧的是,当我打印出正文时,标题值实际上是在响应中设置的(如下所示)。感谢您对此的任何帮助,提前致谢。我在这里有这个代码:http : //play.golang.org/p/JaYTfVoDsq其中包含以下内容:package mainimport ( "fmt" "io/ioutil" "net/http" "net/http/httptest")func main() { mux := http.NewServeMux() server := httptest.NewServer(mux) defer server.Close() mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { r.Header.Set("Authorization", "responseAuthVal") fmt.Fprintln(w, r.Header) }) req, _ := http.NewRequest("GET", server.URL, nil) res, _:= http.DefaultClient.Do(req) headerVal := res.Header.Get("Authorization") fmt.Printf("auth header=%s, with length=%d\n", headerVal, len(headerVal)) content, _ := ioutil.ReadAll(res.Body) fmt.Printf("res.Body=%s", content) res.Body.Close()}此运行代码的输出是:auth header=, with length=0res.Body=map[Authorization:[responseAuthVal] User-Agent:[Go-http-client/1.1] Accept-Encoding:[gzip]]
- 1 回答
- 0 关注
- 221 浏览
添加回答
举报
0/150
提交
取消