Usar cURL en Java

Sheeraz Gul 20 junio 2023
  1. cURL en Java
  2. Diferentes formas de usar cURL en Java
Usar cURL en Java

Hoy aprenderemos sobre cURL en Java. También aprenderemos a usar cURL con ProcessBuilder y Runtime.getRuntime.

cURL en Java

El cURL es una herramienta de red que transfiere los datos entre el cliente y el servidor cURL. La cURL utiliza protocolos como HTTP, FTP, TELNET y SCP.

El cURL funciona de forma similar al paquete java.net.URLConnection del núcleo java o al ApacheHttpClient de Apache. Sin embargo, cURL funciona en los comandos, por lo que es posible que necesitemos usar ProcessBuilder o Runtime.getRuntime() en Java.

Diferentes formas de usar cURL en Java

Primero, asegúrese de que cURL esté instalado en su sistema. Luego, descargue el instalador cURL de estos enlaces e instálelo en su sistema.

Método 1: Usar cURL con ProcessBuilder

Una vez que cURL está instalado en el sistema, podemos usarlo en Java. Aquí hay un ejemplo simple de cómo usar cURL en Java:

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

El código anterior ejecuta el comando cURL con una solicitud de obtención en el enlace del servidor dado. También necesitamos proporcionar la ruta del sistema para cURL; De lo contrario, no funcionará.

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();

Ahora podemos obtener el flujo de entrada del proceso y, una vez que se completa el procesamiento, podemos obtener el código de salida y destruir la instancia del proceso.

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();

Para comandos adicionales de cURL, podemos reutilizar el ProcessBuilder o pasar los comandos como una matriz.

Método 2: Usar cURL con Runtime.getRuntime

Otro método para ejecutar comandos en Java es Runtime.getRuntime() para obtener la instancia de la clase de proceso. El Runtime.getRuntime() es una buena alternativa para usar cURL en Java.

Intentemos ejecutar cURL usando Runtime.getRuntime en Java:

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

El código anterior envía una solicitud de publicación utilizando los métodos cURL y Runtime.getRuntime. Ahora podemos obtener el InputStream con el mismo método descrito anteriormente.

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();

Recuerde, si las instancias ya no son necesarias, los recursos del sistema deben liberarse utilizando el método destroy() en las instancias del proceso.

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