HOWTO · Java
Java で cURL を使用する
このチュートリアルでは、cURL について説明し、Java のコード例を使用してその使用法を示します。
今日は、Java の cURL について学びます。 また、ProcessBuilder および Runtime.getRuntime で cURL を使用する方法も学びます。
JavaのcURL
cURL は、cURL クライアントとサーバーの間でデータを転送するネットワーク ツールです。 cURL は、HTTP、FTP、TELNET、および SCP などのプロトコルを使用します。
cURL は、コア Java の java.net.URLConnection パッケージまたは Apache の ApacheHttpClient と同様に機能します。 ただし、cURL はコマンドで機能するため、Java では ProcessBuilder または Runtime.getRuntime() を使用する必要がある場合があります。
Java で cURL を使用するさまざまな方法
まず、cURL がシステムにインストールされていることを確認してください。 次に、これらのリンクから cURL インストーラーをダウンロードして、システムにインストールします。
方法 1: ProcessBuilder で cURL を使用する
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.getRuntime で cURL を使用する
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() メソッドを使用してシステム リソースを解放する必要があります。