是否可以在NIFI处理器中使用xmlHttpRequest来调用远程休息服务?在我的情况下, 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:
nifi.apache/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.3.0/org.apache.nifi.processors.standard。 InvokeHTTP / index.html
服务的响应将写入流文件的内容。
The response from the service will be written to the contents of the flow file.
更多推荐
如何在NiFi中调用远程REST服务
发布评论