1.2k questions
1.4k answers
361 comments
339 users
If I have been given a URL, how can I download that file and replace my current message with the result?
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'));
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,
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()
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(); }