我在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")
我已经设置了auth,并且我可以考虑添加每个标头。我仔细阅读了文档并尝试了它,看它是否也适用。下面是我通过帖子请求传递给身体的信息
`{"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"}
答案 0 :(得分:2)
问题是我的读者对象,应该是
strings.NewReader("grant_type=client_identifier")
答案 1 :(得分:-1)
http://golang.org/pkg/net/http/#Header.Set
Header.Set()
不会添加新标头。你想要Header.Add()
。请参阅上面的文档链接。