Utilisation de Curl en Java

1. Vue d'ensemble

Dans ce tutoriel, nous allons voir comment utiliser l' outil curl dans un programme Java.

Curl est un outil de mise en réseau utilisé pour transférer des données entre un serveur et le client curl à l' aide de protocoles tels que HTTP, FTP, TELNET et SCP.

2. Utilisation de base de Curl

Nous pouvons exécuter des commandes curl à partir de Java en utilisant ProcessBuilder - une classe d'assistance pour la construction d'instances de la classe Process .

Voyons un exemple d'envoi de commandes directement au système d'exploitation:

String command = "curl -X GET //postman-echo.com/get?foo1=bar1&foo2=bar2"; ProcessBuilder processBuilder = new ProcessBuilder(command.split(" ")); 

Tout d'abord, nous créons la variable de commande avant de la transmettre au constructeur ProcessBuilder .

Il convient de noter ici que si l' exécutable curl n'est pas sur notre chemin système, nous devrons fournir son chemin complet dans notre chaîne de commande.

Nous pouvons ensuite définir le répertoire de travail du ProcessBuilder et démarrer le processus:

processBuilder.directory(new File("/home/")); Process process = processBuilder.start(); 

À partir de là, nous pouvons obtenir l' InputStream en y accédant à partir de l' instance Process :

InputStream inputStream = process.getInputStream(); 

Lorsque le traitement est terminé, nous pouvons obtenir le code de sortie avec:

int exitCode = process.exitValue(); 

Si nous devons exécuter des commandes supplémentaires, nous pouvons réutiliser l' instance ProcessBuilder en passant de nouvelles commandes et arguments dans un tableau String :

processBuilder.command( new String[]{"curl", "-X", "GET", "//postman-echo.com?foo=bar"}); 

Enfin, pour terminer chaque instance de Process , nous devons utiliser:

process.destroy(); 

3. Une alternative simple au ProcessBuilder

Au lieu d'utiliser la classe ProcessBuilder , nous pouvons utiliser Runtime.getRuntime () pour obtenir une instance de la classe Process .

Voyons un autre exemple de commande curl - cette fois en utilisant une requête POST :

curl -X POST //postman-echo.com/post --data foo1=bar1&foo2=bar2

Maintenant, exécutons la commande en utilisant la méthode Runtime.getRuntime () :

String command = "curl -X POST //postman-echo.com/post --data foo1=bar1&foo2=bar2"; Process process = Runtime.getRuntime().exec(command); 

Tout d'abord, nous créons à nouveau une instance de la classe Process , mais cette fois en utilisant Runtime.getRuntime () . Nous pouvons obtenir un InputStream comme dans notre exemple précédent en appelant la méthode getInputStream () :

process.getInputStream();

Lorsque l'instance n'est plus nécessaire, nous devons libérer les ressources système en appelant la méthode destroy () .

4. Conclusion

Dans cet article, nous avons montré deux façons d'utiliser curl en Java.

Cet exemple de code et d'autres sont disponibles à l'adresse over sur GitHub.