2 Replies Latest reply on Mar 22, 2016 3:00 AM by arunkumar RSS
    arunkumar Explorer

    ContentLoader post methods

    Hi,

     

    I have an external URL (POST method) which consumes "application/json" and produces "application/pdf".

     

    Which content loader post method should I use?

     

    PostJSON takes JSON content however the return type shows as JSON

     

    var myHeader = {

        Accept: "application/pdf"

    };

    var contentJSON = {"key":"value"};

    var params = {

      headers: myHeader,

      url: "my external url",

      content: contentJSON,

    };

    // result: JSON

    var result = Resources["ContentLoaderFunctions"].PostJSON(params);

     

    But, I get the following error when invoking the service:  Unable To Convert From org.json.JSONObject to BLOB

     

    Regards

    Arunkumar D

      • Re: ContentLoader post methods
        jlebourhis Explorer

        If you're doing that so that the pdf is directly loaded to the client's browser: it doesn't work (I already tried. But if you manage to do so, I'd be interested to know and you may become my new god).

         

        To answer directly to your question, PostJson is waiting for JSON objects (This is the Thingworx mechanism) and you send a file (blob).

        It just cannot andle that type.

          • Re: ContentLoader post methods
            arunkumar Explorer

            Hi,

             

            I don't necessarily have to show it in the client browser.

             

            I want my service to fetch the PDF file from the external URL and store it using FileRepository thing.

             

            Fetching PDF using the above said PostJSON is where I'm facing issues.

             

            If I use PostBinary, I'm getting following error:

                 Wrapped java.lang.Exception: Unable To Convert From org.json.JSONArray to BLOB Cause: Unable To Convert From org.json.JSONArray to BLOB

             

            If I had to use LoadBinary, how to send the JSON content to the 3rd party URL? Because the LoadBinary params doesn't contain "content" attribute.

             

            Please let me know.

             

            Regards

            Arunkumar D