1
我正在使用oauth2访问第三方API。我可以获取访问令牌,但是当我尝试通过在请求头中传递不记名令牌来调用API时,它会给我401(未授权)错误。虽然当我尝试通过POSTMAN传递标头(Authorization:Bearer)来实现时效果很好。但是它不起作用。无法在Golang的GET请求头中传递不记名令牌
以下是代码示例。
url := "http://api.kounta.com/v1/companies/me.json"
var bearer = "Bearer " + <ACCESS TOKEN HERE>
req, err := http.NewRequest("GET", url, nil)
req.Header.Add("authorization", bearer)
client := urlfetch.Client(context)
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
writer.Write([]byte(body)) // Gives 401 Unauthorized error, though same works using POSTMAN
您是否尝试过'设置()'头而不是'添加()'它呢? ['Add()'](https://golang.org/pkg/net/http/#Header.Add)附加值到现有的头部,而['Set()'](https://golang.org /pkg/net/http/#Header.Set)会覆盖现有的标题。另外根据RFC标头字段不区分大小写,但一些语言(即PHP)不知道这一点,并将寻找'Authorization' ... – Havelock
@Havelock:去设置textproto包当您设置所有标头时他们。 – JimB
@TahirRauf:你看过标题,看看它们是如何被发送的? – JimB