0
java ProcessBuilderでcurlコマンドを使用しています。 curlコマンドは、コマンドラインで次のような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