在nifi中,如何调用POST json数据并获取json响应。我试图通过添加HTTPbuilder库来使用HTTPbuilder。但是得到异常
Caused by: java.lang.ClassNotFoundException: org.apache.http.client.HttpResponseException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:677)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:787)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:775)
... 50 common frames omitted
答案 0 :(得分:0)
下面是在GroovyScript中调用POST休息服务的示例
def jsonBody= '{\"query\":{\"bool\":{\"must\":[{\"match\":{\"FlowID\":' + flowID + '}}]}}}'
def url ="http://localhost/rest"
def post = new URL(url).openConnection()
post.setRequestMethod("POST")
post.setDoOutput(true)
post.setRequestProperty("Content-Type", "application/json")
post.getOutputStream().write(jsonBody.getBytes("UTF-8"))
def w_getResponseCode = post.getResponseCode();
def response = ""
if (w_getResponseCode.equals(200)) {
response = post.getInputStream().getText()
}
//使用JsonSlurper解析json中的响应。
您可以在ExecuteGroovyScript Processor中使用以上代码,也可以在ExecuteGroovyScript中创建json,然后将InvokeHttp与POST http方法结合使用