如何在 NiFi 中调用远程 REST 服务 [英] How to invoke a remote REST service in NiFi
本文介绍了如何在 NiFi 中调用远程 REST 服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以在NIFI处理器中使用xmlHttpRequest来调用远程rest服务?就我而言,ExecuteScript
处理器(使用 Javascript)无法评估 XMLHttpRequest
;有没有类似的解决方案可以用来获取响应数据?
Is it possible to use xmlHttpRequest in NIFI processor to invoke remote rest service? In my case the ExecuteScript
processor (using Javascript) can't evaluate XMLHttpRequest
; is there any similar solution I can use to get response data?
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)
}
推荐答案
有一个 InvokeHttp 处理器,无需编写任何代码即可调用 REST 服务:
There is an InvokeHttp processor that can be used to invoke a REST service without writing any code:
来自服务的响应将写入流文件的内容.
The response from the service will be written to the contents of the flow file.
这篇关于如何在 NiFi 中调用远程 REST 服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文