是否可以在NIFI处理器中使用xmlHttpRequest来调用远程休息服务?在我的例子中,ExecuteScript处理器(使用Javascript)无法评估XMLHttpRequest;我可以使用任何类似的解决方案来获取响应数据吗?
var OutputStreamCallback = Java.type("org.apache.nifi.processor.io.OutputStreamCallback");
var StandardCharsets = Java.type("java.nio.charset.StandardCharsets");
Date.prototype.isValid = function () {
return (Object.prototype.toString.call(this) === "[object Date]")
&& !isNaN(this.getTime());
};
var flowFile = session.get();
if (flowFile != null) {
var fromDate = flowFile.getAttribute('fromDate')
var uid = flowFile.getAttribute('uid')
var xmlhttp = null;
var result = null;
xmlhttp = new XMLHttpRequest();
if (typeof xmlhttp.overrideMimeType != 'undefined') {
xmlhttp.overrideMimeType('application/json');
} else if (window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open('GET',"similar url here WorkInfo?dateFrom=?&uid=?",true);
xmlhttp.send(dateFrom,uid);
if (xmlhttp.status == 200) {
result = 'WorkInfoDate'
}
flowFile = session.putAttribute(flowFile,'filename',fromDate + '_' + result);
flowFile = session.write(flowFile,new OutputStreamCallback(function (outputStream) {
outputStream.write(command.getBytes(StandardCharsets.UTF_8))
}));
session.transfer(flowFile,REL_SUCCESS)
}
最佳答案