Hi, 

In the development of the connector for LinkedIn, we are getting problem
related to sending JSON via the POST method. 

LinkedIn requires a JSON string in the following format to be posted: 
{ 
        "contentType":"linkedin-html", 
        "body":"update body" 
} 

The properties defined in the synapse template for this method are as
follows: 

<property name="uri.var.linkedinUrl" expression="$func:appUri" />
<property name="uri.var.accessToken" expression="$func:accessToken" />
<property name="uri.var.contentType" expression="$func:contentType" />
<property name="uri.var.postBody" expression="$func:postBody" />

I have turned on Axis2 JSON stream builder options, and also have added the
messageType Axis2 property to the synapse template.   

When using a payload factory in the following manner: 
                <payloadFactory media-type="json">
                        <format>
                                { 
                                        "contentType":"$1", 
                                        "body":"$2" 
                                } 
                        </format>
                        <args>
                            <arg
expression="get-property('uri.var.contentType')" />
                            <arg
expression="get-property('uri.var.postBody')" />
                        </args>
                </payloadFactory>

The JSON being sent out by the ESB to the LinkedIn API (monitored via TCP
Mon) is this: 
{ 
  
"accessToken":"AQWvIwvrmVtaIp-o0PCeFfLtLXxNGmIf5pYaRrLUriuts-baLgWVp_6eYBTEDOepQZ5BOb34OLY2m3X4lWNMiCPncKPQ6iNE4RJ-cXAwLvdQXjHE6mg6WK_nNv184XYjpSV0wqr6TXVknJHy5B5RaJSfCja6KG7ScL7SniN7fLaew3GNtLg",
 
   "contentType":"linkedin-html", 
   "postBody":"Hello", 
   "jsonObject":{ 
      "contentType":"linkedin-html", 
      "body":"Hello" 
   } 
} 

Upon removing the PayloadFactory and sending, the ESB sends out the
following JSON object: 

{ 
   "appUri":"https:\/\/api.linkedin.com\/v1", 
  
"accessToken":"AQWvIwvrmVtaIp-o0PCeFfLtLXxNGmIf5pYaRrLUriuts-baLgWVp_6eYBTEDOepQZ5BOb34OLY2m3X4lWNMiCPncKPQ6iNE4RJ-cXAwLvdQXjHE6mg6WK_nNv184XYjpSV0wqr6TXVknJHy5B5RaJSfCja6KG7ScL7SniN7fLaew3GNtLg",
 
   "contentType":"linkedin-html", 
   "postBody":"Hello" 
} 

Both formats are not accepted by the LinkedIn API. 

I'd greatly appreciate if I could get some suggestions on how to format this
JSON properly via the synapse template. 

Thanks. 



--
View this message in context: 
http://wso2-oxygen-tank.10903.n7.nabble.com/JSON-string-in-request-being-reformatted-by-ESB-tp90183.html
Sent from the WSO2 Development mailing list archive at Nabble.com.
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to