Menggunakan Curl di Java

1. Ikhtisar

Dalam tutorial ini, kita akan melihat bagaimana menggunakan alat curl di dalam program Java.

Curl adalah alat jaringan yang digunakan untuk mentransfer data antara server dan klien curl menggunakan protokol seperti HTTP, FTP, TELNET, dan SCP.

2. Penggunaan Dasar Curl

Kita dapat menjalankan perintah curl dari Java dengan menggunakan ProcessBuilder - kelas pembantu untuk membuat instance dari kelas Proses .

Mari kita lihat contoh pengiriman perintah langsung ke sistem operasi:

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

Pertama, kita membuat variabel perintah sebelum meneruskannya ke konstruktor ProcessBuilder .

Perlu dicatat di sini bahwa jika curl yang dapat dieksekusi tidak ada di jalur sistem kami, kami harus menyediakan jalur lengkapnya di string perintah kami.

Kami kemudian dapat mengatur direktori kerja untuk ProcessBuilder dan memulai proses:

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

Dari sini, kita bisa mendapatkan InputStream dengan mengaksesnya dari instance Proses :

InputStream inputStream = process.getInputStream(); 

Saat proses selesai, kita bisa mendapatkan kode keluar dengan:

int exitCode = process.exitValue(); 

Jika kita perlu menjalankan perintah tambahan, kita dapat menggunakan kembali instance ProcessBuilder dengan meneruskan perintah dan argumen baru dalam array String :

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

Akhirnya, untuk menghentikan setiap instance Proses , kita harus menggunakan:

process.destroy(); 

3. Alternatif Sederhana untuk ProcessBuilder

Sebagai alternatif untuk menggunakan kelas ProcessBuilder , kita bisa menggunakan Runtime.getRuntime () untuk mendapatkan instance kelas Proses .

Mari kita lihat contoh perintah curl lainnya - kali ini menggunakan permintaan POST :

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

Sekarang, mari jalankan perintah dengan menggunakan metode Runtime.getRuntime () :

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

Pertama, kami membuat instance kelas Proses lagi, tetapi kali ini menggunakan Runtime.getRuntime () . Kita bisa mendapatkan InputStream seperti pada contoh sebelumnya dengan memanggil metode getInputStream () :

process.getInputStream();

Ketika instance tidak lagi diperlukan, kita harus melepaskan sumber daya sistem dengan memanggil metode destroy () .

4. Kesimpulan

Pada artikel ini, kami telah menunjukkan dua cara menggunakan curl di Java.

Ini dan lebih banyak contoh kode tersedia di GitHub.