0
我有一个用于Java ProcessBuilder的curl命令。 curl命令返回的命令行下面的JSON例子:Java curl响应
{"Token":{"urlString":"JAAIZ2phZWhybGkIZ2phZWhybGkAigFZ1UOgr4oBWflQJK}}
使用下面的Java代码,读线路始终是空的,我不明白为什么。
ProcessBuilder pb = new ProcessBuilder("curl", "-k", "-negotiate", "-s", "-u", ":", "https://host:port/webhdfs/v1/?op=GETDELEGATIONTOKEN&renewer", "=", "user");
Process p = pb.start();
InputStream is = p.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
StringBuilder responseStrBuilder = new StringBuilder();
String line = new String();
while ((line = br.readLine()) != null) {
System.out.println("read line from curl command: " + line);
responseStrBuilder.append(line);
}
只需尝试一次InputStream = p.getErrorStream()并检查您是否收到任何错误或不是。 –
如果您只想执行HTTP请求,[为什么不使用'URL'](https://docs.oracle.com/javase/tutorial/networking/urls/readingURL.html) – Michael
感谢您的建议,那里没有错误。切换到InputStream是= p.getErrorStream();返回empyt流。 – Gerd