0
У меня есть команда curl, используемая с java ProcessBuilder. Локон команда возвращает следующий пример JSON в командной строке:Java curl response
{"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 is = p.getErrorStream() и проверьте, не получаете ли вы что-либо как ошибку или нет. –
Если вы хотите выполнить HTTP-запрос, [почему бы не использовать 'URL'] (https://docs.oracle.com/javase/tutorial/networking/urls/readingURL.html) – Michael
спасибо за предложения, там не является ошибкой. Переключение на InputStream = p.getErrorStream(); возвращает поток empyt. – Gerd