Java で cURL を使用する
今日は、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() メソッドを使用してシステム リソースを解放する必要があります。
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