Verwenden von Curl in Java

1. Übersicht

In diesem Tutorial werden wir uns ansehen, wie das Curl- Tool in einem Java-Programm verwendet wird.

Curl ist ein Netzwerk-Tool zum Übertragen von Daten zwischen einem Server und dem Curl- Client mithilfe von Protokollen wie HTTP, FTP, TELNET und SCP.

2. Grundlegende Verwendung von Curl

Wir können Curl- Befehle von Java aus ausführen, indem wir den ProcessBuilder verwenden - eine Hilfsklasse zum Erstellen von Instanzen der Process- Klasse.

Sehen wir uns ein Beispiel für das Senden von Befehlen direkt an das Betriebssystem an:

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

Zuerst erstellen wir die Befehlsvariable , bevor wir sie an den ProcessBuilder- Konstruktor übergeben.

Es ist erwähnenswert, dass wir den vollständigen Pfad in unserer Befehlszeichenfolge angeben müssen , wenn sich die ausführbare Curl- Datei nicht in unserem Systempfad befindet.

Wir können dann das Arbeitsverzeichnis für den ProcessBuilder festlegen und den Prozess starten:

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

Von hier an können wir den InputStream abrufen, indem wir über die Process- Instanz darauf zugreifen :

InputStream inputStream = process.getInputStream(); 

Wenn die Verarbeitung abgeschlossen ist, können wir den Exit-Code erhalten mit:

int exitCode = process.exitValue(); 

Wenn wir zusätzliche Befehle ausführen müssen, können wir die ProcessBuilder- Instanz wiederverwenden, indem wir neue Befehle und Argumente in einem String- Array übergeben:

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

Um jede Prozessinstanz zu beenden , sollten wir Folgendes verwenden:

process.destroy(); 

3. Eine einfache Alternative zum ProcessBuilder

Alternativ zur Verwendung der ProcessBuilder- Klasse können wir Runtime.getRuntime () verwenden , um eine Instanz der Process- Klasse abzurufen .

Sehen wir uns einen weiteren Beispiel- Curl- Befehl an - diesmal mithilfe einer POST- Anforderung:

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

Führen Sie nun den Befehl mit der Methode Runtime.getRuntime () aus :

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

Zuerst erstellen wir erneut eine Instanz der Process- Klasse, diesmal jedoch mit Runtime.getRuntime () . Wir können einen InputStream wie in unserem vorherigen Beispiel erhalten, indem wir die Methode getInputStream () aufrufen :

process.getInputStream();

Wenn die Instanz nicht mehr benötigt wird, sollten wir Systemressourcen freigeben, indem wir die destroy () -Methode aufrufen .

4. Fazit

In diesem Artikel haben wir zwei Möglichkeiten zur Verwendung von Curl in Java gezeigt.

Dieses und weitere Codebeispiele finden Sie auf GitHub.