Saya seorang pemula di java dan ingin menggunakan curl di java. Apa pertanyaan saya adalah curl built-in di java atau saya harus menginstalnya dari sumber pihak ketiga untuk digunakan dengan Java. Jika demikian, bagaimana cara menginstal curl di java. Saya telah googling untuk waktu yang lama tetapi tidak menemukan bantuan. Semoga ada yang bisa membantu saya di luar sana.
Terima kasih sebelumnya.
Jawaban:
Anda dapat memanfaatkan
java.net.URL
dan / ataujava.net.URLConnection
.URL url = new URL("https://stackoverflow.com"); try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"))) { for (String line; (line = reader.readLine()) != null;) { System.out.println(line); } }
Juga lihat tutorial sederhana Oracle tentang masalah ini. Namun itu agak bertele-tele. Untuk mendapatkan kode yang lebih sedikit, Anda mungkin ingin mempertimbangkan Apache HttpClient sebagai gantinya.
Ngomong-ngomong: jika pertanyaan Anda berikutnya adalah "Bagaimana cara memproses hasil HTML?", Maka jawabannya adalah " Gunakan parser HTML . Tidak, jangan gunakan regex untuk ini .".
Lihat juga:
sumber
URLConnection
, Anda belum mengetahui dan memahami spesifikasi HTTP. Omong-omong, jangan coba membandingkan PHP dengan Java. Ini seperti apel dan jeruk. Untuk menghindari masalah diri / kebingungan, lebih baik lupakan PHP dan berikan tampilan baru di Java. Ini adalah bahasa dengan ideologi yang sama sekali berbeda. PS: Saya melakukan keduanya, jadi saya ceritakan dari pengalaman.Beberapa orang telah menyebutkan HttpURLConnection , URL dan URLConnection . Jika Anda memerlukan semua kontrol dan fitur tambahan yang disediakan oleh perpustakaan curl (dan lebih banyak lagi), saya akan merekomendasikan httpclient Apache .
sumber
The Runtime objek memungkinkan Anda untuk menjalankan aplikasi baris perintah eksternal dari Jawa dan karena itu akan memungkinkan Anda untuk menggunakan cURL namun sebagai jawaban lain menunjukkan mungkin ada cara yang lebih baik untuk melakukan apa yang Anda coba lakukan. Jika yang ingin Anda lakukan hanyalah mengunduh file, objek URL akan berfungsi dengan baik.
sumber
Menggunakan java libs standar, saya sarankan untuk melihat kelas HttpUrlConnection http://java.sun.com/javase/6/docs/api/java/net/HttpURLConnection.html
Ini dapat menangani sebagian besar yang dapat dilakukan curl dengan mengatur koneksi. Apa yang Anda lakukan dengan streaming terserah Anda.
sumber
Curl adalah program non-java dan harus disediakan di luar program Java Anda.
Anda dapat dengan mudah mendapatkan banyak fungsi menggunakan Jakarta Commons Net , kecuali jika ada fungsi khusus seperti "melanjutkan transfer" yang Anda perlukan (yang membosankan untuk membuat kode sendiri)
sumber
Gunakan Runtime untuk memanggil Curl. Kode ini berfungsi untuk Ubuntu dan Windows.
String[] commands = new String {"curl", "-X", "GET", "http://checkip.amazonaws.com"}; Process process = Runtime.getRuntime().exec(commands); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; String response; while ((line = reader.readLine()) != null) { response.append(line); }
sumber