Menggunakan Curl di Java

1. Gambaran keseluruhan

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

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

2. Penggunaan Asas Keriting

Kita dapat melaksanakan perintah curl dari Java dengan menggunakan ProcessBuilder - kelas penolong untuk membina contoh kelas Proses .

Mari lihat contoh menghantar arahan terus 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 pemboleh ubah perintah sebelum meneruskannya ke konstruktor ProcessBuilder .

Perlu diingat di sini bahawa jika curl yang dapat dijalankan tidak berada di jalan sistem kita, kita harus memberikan jalur penuhnya dalam rentetan perintah kita.

Kami kemudian dapat menetapkan direktori kerja untuk ProcessBuilder dan memulakan prosesnya:

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

Dari sini, kita dapat memperoleh InputStream dengan mengaksesnya dari contoh Proses :

InputStream inputStream = process.getInputStream(); 

Apabila pemprosesan selesai, kita dapat kod keluar dengan:

int exitCode = process.exitValue(); 

Sekiranya 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 contoh Proses , kita harus menggunakan:

process.destroy(); 

3. Alternatif Mudah untuk ProcessBuilder

Sebagai alternatif untuk menggunakan kelas ProcessBuilder , kita dapat menggunakan Runtime.getRuntime () untuk mendapatkan contoh kelas Proses .

Mari lihat perintah curl sampel lain - kali ini menggunakan permintaan POST :

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

Sekarang, mari kita laksanakan perintah dengan menggunakan kaedah 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 contoh kelas Proses sekali lagi, tetapi kali ini menggunakan Runtime.getRuntime () . Kita boleh mendapatkan InputStream seperti dalam contoh sebelumnya dengan memanggil kaedah getInputStream () :

process.getInputStream();

Apabila contoh tidak diperlukan lagi, kita harus melepaskan sumber daya sistem dengan memanggil metode menghancurkan () .

4. Kesimpulan

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

Ini dan lebih banyak contoh kod boleh didapati di GitHub.