贝宝REST API的Grails
获得访问令牌如何使用Grails中贝宝REST API的Grails
贝宝REST APIcurl -v https://api.sandbox.paypal.com/v1/oauth2/token \
-H "Accept: application/json" \
-H "Accept-Language: en_US" \
-u "EOJ2S-Z6OoN_le_KS1d75wsZ6y0SFdVsY9183IvxFyZp:EClusMEUk8e9ihI7ZdVLF5cZ6y0SFdVsY9183IvxFyZp" \
-d "grant_type=client_credentials"
DOC:https://developer.paypal.com/webapps/developer/docs/integration/mobile/verify-mobile-payment/
我需要在Grails的认证令牌。它在终端工作没有任何问题。
我试图用HttpClient
来实现,但是如何传递用户凭证。在上面的例子中指定-u uname:pass
在HttpClient
。
看来你正在使用基本认证验证(见how to set basic auth in curl和the client's section for Basic Auth in the Wikipedia)
Apache的HTTP客户端提供身份验证为你办理,但在这种情况下,它似乎更容易只是手动创建标题:
Request addBasicAuthHeader(String username, String password) {
return addBasicAuthHeader(createBasicAuth(username, password))
}
Request addBasicAuthHeader(String headerValue) {
request.addHeader("Authorization", "Basic ${headerValue}")
return request
}
private String createBasicAuthHeader(String username, password) {
"$username:$password".toString().bytes.encodeBase64()
}
你可以调用任何的addBasicAuthHeader
方法(也许他们适应您正在使用HttpClient
的味道),让您可以从它的原始值加上基本认证头(你有curl
的-u
标志)或来自一对用户名和密码。
我添加了几个链接来说明我的假设以及如何计算基本auth头。我不确定如何精心设计更多,特别是没有任何代码可供您评论。 – Deigote
感谢您的快速响应,我会尝试您的代码:) –
有没有原因不使用官方java rest-api-sdk – user190117