我有一个java应用程序,我只是在读取文件并将数据插入到elasticsearch索引中。
这是我正在使用的代码。
in = new BufferedReader(new FileReader("file.txt"));
line = in.readLine();
while ((line = in.readLine()) != null) {
System.out.println("Command: curl -XPOST 'http://localhost:9200/esensor/data' -d '{ \"temp\": \""+line+"\" }'");
p = Runtime.getRuntime().exec("curl -XPOST 'http://localhost:9200/esensor/data' -d '{ \"temp\": \""+line+"\" }'");
p.waitFor();
BufferedReader err = new BufferedReader(new InputStreamReader(p.getErrorStream()));
while ((line = err.readLine()) != null) {
System.out.println(line);
}
break;
}
in.close();
但这不起作用。 Curl给出了这个错误。
curl: (1) Protocol 'http not supported or disabled in libcurl
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (6) Could not resolve host: "temp"
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (6) Could not resolve host: "17.35757"
curl: (3) [globbing] unmatched close brace/bracket in column 1
但是看到我打印了我正在执行的命令。如果我在控制台中手动复制粘贴,那么一切正常。为什么会这样?我做错了什么?
答案 0 :(得分:0)
密钥出现在curl的错误消息中:
curl: (1) Protocol 'http not supported or disabled in libcurl
协议名称之前的单引号显示curl作为参数的一部分传递,因此它不会按照您希望的方式工作,而是为curl提供格式错误的URL。