贝宝休息访问令牌调用的主体是啥格式和内容类型?
Posted
技术标签:
【中文标题】贝宝休息访问令牌调用的主体是啥格式和内容类型?【英文标题】:What format and content-type is the body of a paypal rest access token call?贝宝休息访问令牌调用的主体是什么格式和内容类型? 【发布时间】:2013-06-22 11:15:12 【问题描述】:我正在使用带有 Jersey 2.0 客户端的 Java 对 paypal REST API 进行 REST 调用。根据 API 文档,我应该使用 Accept: application/json 和 Accept-Language: en_US 发帖到:https://api.sandbox.paypal.com/v1/oauth2/token。它还表明我应该传入 body grant_type=client_credentials。我做了所有这些,但我不断收到 406 或 415。我无法弄清楚 post call 的 Content-Type 应该是什么?我尝试过 text/plain、text/html、application/json、form-url-encoded.. 似乎没有什么能让我找回令牌。不知道为什么他们的 API 文档编写者没有在文档中包含有效负载的 Content-Type 和格式。有人知道帖子正文的 Content-Type 应该是什么吗?
我想补充一点,当我执行除 form-url-encoded 之外的任何 Content-Type 时,我会返回 415,这意味着媒体类型不被接受,但是当我使用 form-url-encoded 传递任何内容时,我拿回406,基本告诉我身体不行了。
谢谢。
【问题讨论】:
您确定您的请求正文正确且格式正确吗? 嗨,我确信媒体类型应该是 form_url_encoded 并且从我的示例中,这就是我要传递的内容。我能想到的唯一其他问题可能是我没有正确使用 SSL.. url 是 https,但我没有在客户端使用 SSL.. 不确定沙箱是否需要 SSL 来处理实际请求。接下来我会尝试使用它。 【参考方案1】:感谢您提出问题。
/token 调用最近发生了变化,访问令牌的请求需要将 content-type
设置为 application/x-www-form-urlencoded
。这是在 cURL 调用中默认完成的。
包含相关说明的更新文档很快就会发布。
【讨论】:
【参考方案2】:入站 OAuth 2 端点只接受“application/x-www-form-urlencoded”,否则会抛出 415,然后需要对有效负载进行正确的 url 编码。同样接受头需要包含“application/json”,否则服务将抛出 406。
例如:
标题: 授权:基本 [base64 编码] 内容类型:application/x-www-form-urlencoded 接受:应用程序/json
有效负载示例: grant_type=client_credentials&response_type=token
【讨论】:
以上是关于贝宝休息访问令牌调用的主体是啥格式和内容类型?的主要内容,如果未能解决你的问题,请参考以下文章
PHP |贝宝休息 API | java.lang.NullPointerException