使用application / x-www-form-urlencoded编码在内部有效负载内发送表单数据

时间:2013-12-11 06:40:04

标签: oauth-2.0 wso2 paypal wso2esb url-encoding

我正在使用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

  1. <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>
  2. 是的,我已经在代码中同时包含了3种可能的(似乎可能的)方式(并尝试过)来进行此调用。但是post参数没有正确地传递到终点。我收到了HTTP / 1.1 400代码的以下响应。

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

    感谢是否有人可以帮助我。

1 个答案:

答案 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>