我有curl命令,它可以在cmd中正常工作,但我想在java代码中运行它
我有curl命令,它可以在cmd中正常工作,但我想在java代码中运行它。命令的主要功能是调用一个“POST”API,它也需要身份验证。 我也使用了调试器,它不在循环中读取响应
String[] command = {"curl",url, "-H" ,"Content-Type: application/x-www-form-urlencoded","-X", username+ "&" + password ,"insecure"};
ProcessBuilder process = new ProcessBuilder(command);
Process p;
try
{
p = process.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
StringBuilder builder = new StringBuilder();
String line="" ;
while ( (line = reader.readLine()) != null) {
builder.append(line);
System.out.println(line);
builder.append(System.getProperty("line.separator"));
}
String result = builder.toString();
System.out.print(result);
}
curl'https://integration.sirionlabs.office:9443/nifi-api/access/token'-H'内容类型:application/x-www-form-urlencoded;字符集=UTF-8'--数据用户名=username&;password=password'--压缩--不安全
预期结果是我需要的承载令牌
# 1 楼答案
使用Java提交请求,而不是运行外部
curl
进程。即使在没有安装curl
的系统上,这也能起作用,使您的代码真正实现多平台:HttpRequest、HttpResponse和HttpClient类来自java.net.http包