Curl gebruiken in Java

1. Overzicht

In deze zelfstudie gaan we kijken hoe u de krullen tool in een Java-programma.

Krullen is een netwerktool die wordt gebruikt om gegevens tussen een server en de krullen cliënt met behulp van protocollen zoals HTTP, FTP, TELNET en SCP.

2. Basisgebruik van Curl

We kunnen executeren krullen opdrachten van Java met behulp van de ProcessBuilder - een helperklasse voor het bouwen van instanties van de Werkwijze klasse.

Laten we een voorbeeld bekijken van het rechtstreeks naar het besturingssysteem verzenden van opdrachten:

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

Eerst maken we het opdracht variabele voordat u deze doorgeeft aan de ProcessBuilder constructeur.

Het is vermeldenswaard dat als de krullen uitvoerbaar bestand niet op ons systeempad staat, moeten we het volledige pad opgeven in onze opdrachtreeks.

We kunnen dan de werkdirectory instellen voor het ProcessBuilder en start het proces:

processBuilder.directory (nieuw bestand ("/ home /")); Proces process = processBuilder.start (); 

Vanaf hier kunnen we de InputStream door het te openen vanuit het Werkwijze voorbeeld:

InputStream inputStream = process.getInputStream (); 

Wanneer de verwerking is voltooid, kunnen we de exitcode krijgen met:

int exitCode = process.exitValue (); 

Als we extra opdrachten moeten uitvoeren, kunnen we de ProcessBuilder bijvoorbeeld door nieuwe commando's en argumenten door te geven in een Draad matrix:

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

Eindelijk, om elk te beëindigen Werkwijze we zouden bijvoorbeeld moeten gebruiken:

process.destroy (); 

3. Een eenvoudig alternatief voor de ProcessBuilder

Als alternatief voor het gebruik van de ProcessBuilder klasse, kunnen we gebruiken Runtime.getRuntime () om een ​​instantie van het Werkwijze klasse.

Laten we nog een voorbeeld bekijken krullen commando - deze keer met behulp van een POST verzoek:

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

Laten we nu de opdracht uitvoeren met behulp van de Runtime.getRuntime () methode:

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

Ten eerste maken we een instantie van het Werkwijze klasse opnieuw, maar deze keer met Runtime.getRuntime (). We kunnen een InputStream zoals in ons vorige voorbeeld door de getInputStream () methode:

process.getInputStream ();

Als de instantie niet langer nodig is, moeten we systeembronnen vrijgeven door het vernietigen() methode.

4. Conclusie

In dit artikel hebben we twee manieren van gebruik laten zien krullen in Java.

Deze en meer codevoorbeelden zijn beschikbaar op GitHub.