1.2k questions

1.4k answers

361 comments

339 users

Categories

Sidebar
+1 vote
874 views
by ron-s-6919 (4.5k points)

If I have been given a URL, how can I download that file and replace my current message with the result?

2 Answers

+2 votes
 
Best answer

You can also use the qie.callRESTWebService() using the returnFullHttpResponse parameter as follows:

var urlTemplate = 'http://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg';

var parameterMap = qie.newParameterMap();

 

var responseRaw = qie.callRESTWebService("REST WS",

urlTemplate,

"GET",

null,

null,

parameterMap,

60000,

true);

 

var responseXML = qie.parseXMLString(responseRaw);

var base64Image = responseXML.getNode('/httpResponse/content');

var imageBytes = qie.base64DecodeToBytes(base64Image);

message = qie.createTextMessage(new java.lang.String(imageBytes, 'ISO-8859-1'));

 

See also:

Handling HTTP requests and responses

Making Requests via qie.callRESTWebService()

by ron-s-6919 (4.5k points)
edited by rich-c-2789
+2 votes

You can download a PDF by using the following code in a custom mapping function:

// create HttpGet object
var request = new org.apache.http.client.methods.HttpGet(message.getNode('/').replaceAll(' ', '%20'));
   
try {
   // download
   var response = com.qvera.qie.utils.HttpClientUtils.getHttpClient('', '', 10000).execute(request);
   var entity = response.getEntity();
   if (entity !== null) {
      var stream = entity.getContent();
      try {
         var output = new java.io.ByteArrayOutputStream();
         var ch = stream.read();
         while (ch > -1) {
            output.write(ch);
            ch = stream.read();
         }
         message.setNode('/', output.toString('ISO-8859-1'));
      } finally {
         stream.close();
      }
   }
} finally {
   request.abort();
}
by ron-s-6919 (4.5k points)
...