我可以执行以下nifi命令来检索系统诊断指标。无论如何,这些命令可以通过使用我们自己的方法调用nifi api来执行,就像我们在aws cloudwatch中调用指标一样。
read USER
read -s PASS
TOKEN=`curl -X POST --data "username=$USER&password=$PASS" -k https://nifiHostName.com:nifiPort/nifi-api/access/token`
curl -H "Authorization: Bearer $TOKEN" -k https://nifiHostName:nifiPort/nifi-api/system-diagnostics\ | python -m json.tool
如果无法实现上述目标,那么任何人都可以通过一个简单的Java代码来回答如何授权:Bearer $ TOKEN。
或者通过使用简单的https客户端可以通过java执行这些命令。如果是的话,请你帮我解决。
答案 0 :(得分:2)
您可以通过任何Java HTTP交互调用Apache NiFi API。例如,您可以使用标准URL
对象并对其执行getConnection()
和openConnection()
操作(请参阅extensive answer describing this process)。调用openConnection()
会返回URLConnection
对象,您可以使用connection.setRequestProperty("Header name", value)
设置标题。
您还可以使用jersey-client,Apache HttpClient或OkHTTP等库。
这些方法中的任何一种都允许您设置具有Authorization: Bearer
值的HTTP标头。