我正在使用WSO2 esb 4.8.0并尝试对PayPal API OAuth请求(request with title OAuth Request/Response)进行REST调用。请求的内容类型必须为application/x-www-form-urlencoded
。我尝试过几种方式。
(for better code view please refer this)
<payloadFactory media-type="json">
<format>
{
"grant_type":"client_credentials"
}
</format>
</payloadFactory>
<property name="messageType" value="application/x-www-form-urlencoded" scope="axis2"/>
<call>
<endpoint>
<http method="post" uri-template="https://api.sandbox.paypal.com/v1/oauth2/token?grant_type=client_credentials"/>
<property name="grant_type" value="client_credentials"/>
</endpoint>
</call>
是的,我已经在代码中同时包含了3种可能的(似乎可能的)方式(并尝试过)来进行此调用。但是post参数没有正确地传递到终点。我收到了HTTP / 1.1 400代码的以下响应。
{"error":"invalid_request","error_description":"grant_type is a required parameter"}
感谢是否有人可以帮助我。
答案 0 :(得分:0)
我尝试使用paypal获取oAuth令牌的相同场景。请参阅以下配置
<property name="DISABLE_CHUNKING" value="true" scope="axis2" type="STRING"/>
<property name="HTTP_METHOD" value="POST" scope="axis2" type="STRING"/>
<payloadFactory media-type="xml">
<format>
<POST xmlns="">
<grant_type>client_credentials</grant_type>
</POST>
</format>
<args/>
</payloadFactory>
<property name="messageType" value="application/x-www-form-urlencoded" scope="axis2" type="STRING"/>
<send>
<endpoint>
<address uri="https://api.sandbox.paypal.com/v1/oauth2/token"/>
</endpoint>
</send>