Java で cURL を使用する

Sheeraz Gul 2023年6月20日
  1. JavaのcURL
  2. Java で cURL を使用するさまざまな方法
Java で cURL を使用する

今日は、Java の cURL について学びます。 また、ProcessBuilder および Runtime.getRuntimecURL を使用する方法も学びます。

JavaのcURL

cURL は、cURL クライアントとサーバーの間でデータを転送するネットワーク ツールです。 cURL は、HTTPFTPTELNET、および SCP などのプロトコルを使用します。

cURL は、コア Java の java.net.URLConnection パッケージまたは Apache の ApacheHttpClient と同様に機能します。 ただし、cURL はコマンドで機能するため、Java では ProcessBuilder または Runtime.getRuntime() を使用する必要がある場合があります。

Java で cURL を使用するさまざまな方法

まず、cURL がシステムにインストールされていることを確認してください。 次に、これらのリンクから cURL インストーラーをダウンロードして、システムにインストールします。

方法 1: ProcessBuildercURL を使用する

cURL がシステムにインストールされると、Java で使用できるようになります。 Java で cURL を使用する方法の簡単な例を次に示します。

String Demo_Command = "curl -X GET https://localhost/get?delft1=stack1&delft2=stack2";
ProcessBuilder Process_Builder = new ProcessBuilder(Demo_Command.split(" "));

上記のコードは、指定されたサーバー リンクで get リクエストを使用して cURL コマンドを実行します。 cURL のシステム パス も提供する必要があります。 そうしないと、機能しません。

String Demo_Command = "curl -X GET https://localhost/get?delft1=stack1&delft2=stack2";
ProcessBuilder Process_Builder = new ProcessBuilder(Demo_Command.split(" "));
Process_Builder.directory(new File("/home/"));
Process Demo_process = Process_Builder.start();

これで、プロセスから入力ストリームを取得できます。処理が完了したら、終了コードを取得してプロセス インスタンスを破棄できます。

String Demo_Command = "curl -X GET https://localhost/get?delft1=stack1&delft2=stack2";
ProcessBuilder Process_Builder = new ProcessBuilder(Demo_Command.split(" "));
Process_Builder.directory(new File("/home/"));
Process Demo_process = Process_Builder.start();

InputStream Input_Stream = Demo_process.getInputStream();
int Exit_Code = Demo_process.exitValue();
System.out.println(Exit_Code);
Demo_process.destroy();

追加の cURL コマンドについては、ProcessBuilder を再利用するか、コマンドを配列として渡すことができます。

方法 2: Runtime.getRuntimecURL を使用する

Java でコマンドを実行するもう 1つの方法は、プロセス クラスのインスタンスを取得する Runtime.getRuntime() です。 Runtime.getRuntime() は、Java で cURL を使用するための優れた代替手段です。

Java で Runtime.getRuntime を使用して cURL を実行してみましょう。

String Demo_Command = "curl -X POST https://localhost/post --data delft1=stack1&delft2=stack2";
Process Demo_process = Runtime.getRuntime().exec(Demo_Command);

上記のコードは、cURL および Runtime.getRuntime メソッドを使用してポスト リクエストを送信します。 これで、上記と同じ方法で InputStream を取得できます。

String Demo_Command = "curl -X POST https://localhost/post --data delft1=stack1&delft2=stack2";
Process Demo_process = Runtime.getRuntime().exec(Demo_Command);
InputStream Input_Stream = Demo_process.getInputStream();
Demo_process.destroy();

インスタンスが不要になった場合は、プロセス インスタンスで destroy() メソッドを使用してシステム リソースを解放する必要があります。

著者: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook