我正在构建 2 个 API。一个向另一个提出请求。
要调用接收请求的api,我们需要传递一个X-Token Header。我正在用 Golang 做这个
client := &http.Client{
Transport: &http.Transport{
TLSClientConfig: &tls.Config{
InsecureSkipVerify: true,
},
},
}
req, err := http.NewRequest("GET", "https://localhost:8086/v2/example", nil)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"Error": err.Error()})
}
req.Header.Add("accept", "application/json")
req.Header.Add("content-type", "application/json")
req.Header.Add("x-token", "a2e63ee01401aaeca78be023dfbb8c59")
resp, err := client.Do(req)
在另一个 API 中,我得到带有gin的 http 标头,如下所示:
token := c.Request.Header.Get("x-token")
我不知道为什么我的标头带有另一个值并且没有 X-Token。谢谢!
结果fmt.Printf("%+v", c.Request.Header)
:
map[User-Agent:[Go-http-client/1.1] Referer:[https://localhost:8086/v2/example] Accept-Encoding:[gzip]]
我不知道我的x-token、accept和content-type标头在哪里......
重要的
- 如果我在 Postman 上使用x-token标头向请求的 API 发出请求,我会得到正确的标头。
- 如果我更改发出请求的 API 上的请求地址,例如httpbin,我也会得到正确的标题......