Nifi-API-JAVA PUT request



我只想通过 REST API java 代码启动 Nifi 处理器,我能够调用 HTTP 连接并能够在处理器上看到播放按钮,但流程没有发生? 我有多个进程组,其中我的第一个处理器是 cron 驱动的 GETSplunk 模板,手动启动很好,当我通过 API 流程启动时不起作用, 并更改为计时器计划,它显示SQL模板的错误,任何人都可以遇到此问题,请建议我。 示例 API 代码是。

String url = "http://hostname:8080/nifi-api/flow/process-groups/{id};
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// Setting basic put request
con.setDoOutput(true);
con.setRequestMethod("PUT");
con.setRequestProperty("Content-Type","application/json");
String putJsonData = "{rn" +
""component":{rn" +
""id":"<processor-group id>",rn " +""state":"RUNNING"rn" + "}";
OutputStreamWriter wr = new OutputStreamWriter(con.getOutputStream());
wr.write(putJsonData);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("nSending 'POST' request to URL : " + url);
System.out.println("Post Data : " + putJsonData);
System.out.println("Response Code : " + responseCode);

BufferedReader in = new BufferedReader( new
InputStreamReader(con.getInputStream())); String output; StringBuffer
response = new StringBuffer();
while ((output = in.readLine()) != null) { response.append(output); }
in.close();
//printing result from response
System.out.println(response.toString()); 
}

@Sravya99 当我需要触发来自Nifi外部的流时,我经常创建一个NiFi API接口,通过HandleHttpRequest和HandleHttpResponse监听端口。 这可以是非常简单的请求,也可以是非常复杂的SSL,访问和授权等。 它应该适合您的目的,让您的流始终处于打开状态,并使用 HandleHttpRequest 启动触发的响应。

最新更新