0

我在 golang 中做这个,我整晚都在努力让它工作。我最近的挫败感是,尽管我在请求中放入了许多标头,但我收到了 400 错误。

 29     req.SetBasicAuth(app.id, app.secret)
 30     req.Header.Set("Host", "www.sandbox.paypal.com")
 31     req.Header.Set("Accept", "application/json")
 32     req.Header.Set("Accept-Language", "en_US")
 33     req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
 34     req.Header.Set("Connection", "close")

我已经设置了身份验证,并且我可以考虑添加每个标题。我仔细阅读了文档并尝试戳它以查看它是否也有效。这是我通过发布请求在正文中传递的信息

`{"grant_type": "client_credentials"}`

 42     req, err := http.NewRequest(
 43         "POST", 
 44         app.Endpoint + oauthEndpoint,
 45         strings.NewReader(`{"grant_type": "client_credentials"}`),
 46     )

如果您需要更多代码,请告诉我。但我不太确定这会很好。我也想让这篇文章尽可能笼统。

编辑:

因此,尽管我在有效负载中手动指定了grant_type,但似乎它失败了,因为grant_type没有被识别

{"error":"invalid_request","error_description":"grant_type is a required parameter"}
4

2 回答 2

2

问题是我的读者对象,它应该是

strings.NewReader("grant_type=client_identifier")
于 2013-08-26T02:53:40.487 回答
-1

http://golang.org/pkg/net/http/#Header.Set

Header.Set()不添加新标题。你想要Header.Add()。请参阅上面的文档链接。

于 2013-08-25T14:46:34.843 回答