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