Cara Membuat Requset HTTP Dengan curl
Table of content:
Hypertext Transfer Protocol (HTTP) adalah tulang punggung komunikasi melalui Internet, memungkinkan transfer data antara server dan klien. Namun, berinteraksi dengan titik akhir HTTP bisa jadi menantang, terutama bagi pemula.
Untungnya, curl, alat baris perintah, menyediakan cara yang mudah dan efisien untuk mengirim dan menerima permintaan HTTP. Di sini Anda akan belajar cara menggunakan curl untuk membuat permintaan dasar POST, GET, DELETE, dan PUT HTTP.
Memasang ikal
Secara default, curl diinstal pada sistem operasi utama termasuk macOS, Linux, dan Unix.
Anda dapat mengonfirmasi bahwa Anda telah menginstal curl dengan menjalankan perintah di bawah ini:
curl
Perintah di atas harus mencetak “coba ‘curl –help’ atau ‘curl –manual’ untuk informasi lebih lanjut” di terminal Anda.
Jika curl tidak diinstal pada sistem operasi Anda, Anda dapat mengunduh dan menginstalnya dari halaman unduhan curl.
Membuat Permintaan HTTP GET
Permintaan HTTP GET adalah metode untuk meminta data dari server web. Anda dapat menggunakan permintaan ini untuk mengambil sumber daya tertentu, seperti halaman web, gambar, atau video.
Anda dapat membuat permintaan GET dengan curl dalam format di bawah ini:
curl -X GET <URL>
Mengganti
Misalnya:
curl -X GET https://example.com/todos/1
Menjalankan perintah di atas membuat permintaan HTTP GET ke URL https://example.com/todos/1. Itu -X DAPATKAN opsi menentukan bahwa metode HTTP adalah GET. Saat perintah dijalankan, curl mengirimkan permintaan GET ke server yang ditentukan di URL dan menunggu respons server.
Jika server merespons dengan kode status sukses, keriting menampilkan badan respons di terminal, yang, dalam hal ini, akan menjadi data JSON tentang item tugas dengan ID 1.
Atau, Anda dapat membuat permintaan GET tanpa menentukan -X flag karena, secara default, curl membuat permintaan GET saat Anda tidak menentukan metode permintaan dengan -X bendera.
Misalnya:
curl https://example.com/todos/1
Menjalankan perintah di atas akan mengembalikan respons yang sama seperti perintah sebelumnya dengan “-X DAPATKAN” bendera.
Membuat Permintaan HTTP POST
Permintaan HTTP POST adalah metode untuk menyimpan data ke server web. Tidak seperti permintaan GET, yang mengirimkan data sebagai bagian dari URL, permintaan POST mengirimkan data dalam isi pesan permintaan. Ini membuat permintaan POST lebih aman untuk mengirimkan informasi sensitif.
Anda dapat membuat permintaan POST dengan curl dalam format di bawah ini:
curl -X POST -d <data> <URL>
Misalnya:
curl -X POST -d 'name=jack' -d 'email=jack@example.com' \
https://example.com/users
Perintah di atas mengirimkan permintaan POST ke https://example.com/users dengan data yang ditentukan oleh -D bendera sebagai muatan.
Itu -D flag menentukan data yang akan dikirim. Dalam hal ini, ditentukan dua parameter data: nama=jack dan email=jack@example.com.
Saat Anda menggunakan -D tandai lebih dari sekali dalam sebuah perintah, Anda dapat menggabungkan bidang menggunakan simbol &.
Misalnya:
curl -d "name=jack&email=jack@example.com" https://example.com/api/users
Beberapa data yang mungkin Anda coba kirimkan dalam permintaan POST mungkin sulit untuk dimasukkan ke dalam satu string di terminal Anda. Dalam kasus seperti ini, mungkin ideal untuk membaca dan POST data dari file menggunakan curl.
Untuk mengirim data dari file dalam permintaan POST sebagai muatan dengan curl, gunakan @ menandatangani segera setelah -D flag, diikuti oleh jalur file ke file yang ingin Anda kirimkan curl dalam permintaan.
Misalnya:
curl -X POST -d @users.txt https://example.com/api/users
Menentukan Content-Type
Menggunakan -D flag secara otomatis menyetel tajuk Content-Type ke application/x-www-form-urlencoded. Namun, Anda dapat secara manual menentukan Content-Type yang sesuai untuk permintaan Anda menggunakan -H atau –header bendera diikuti oleh jenis konten yang diinginkan.
Misalnya:
curl -H "Content-Type: application/json" \
-d '{"name": "Jack", "email": "jack@example.com"}' \
https://example.com/api/users
Pada perintah di atas, the -H flag menentukan Content-Type header sebagai Tipe-Konten: aplikasi/json.
Anda bisa mengganti aplikasi/json dengan tipe MIME lain yang valid atau tipe konten yang sesuai untuk data yang Anda kirim di badan permintaan. Misalnya, saat mengunggah data Biner, seperti file gambar atau audio, Anda harus mengatur Jenis Konten ke multipart/formulir-data.
Ini memungkinkan Anda untuk menentukan format yang diharapkan dari data yang dikirim, yang dapat menjadi penting saat berinteraksi dengan API atau layanan web yang memerlukan tipe konten khusus untuk pemrosesan yang tepat.
Membuat Permintaan PUT HTTP
Permintaan HTTP PUT adalah metode untuk memperbarui sumber daya yang ada di server web atau membuatnya jika sumber daya tidak ada. Metode ini berbeda dengan metode POST dalam arti idempoten. Ini berarti memanggil metode PUT sekali atau beberapa kali berturut-turut memiliki efek yang sama pada server.
Anda dapat membuat permintaan PUT dengan curl dalam format di bawah ini:
curl -X PUT -H "Content-Type: application/json" \
-d '{"name": "Jack Bauer", "email": "jackbauer024@example.com"}' \
https://example.com/api/users/4
Perintah di atas mengirimkan permintaan PUT dalam format JSON ke server web yang ditentukan dalam URL di atas dan memperbarui sumber daya yang ditentukan. Jika sumber daya yang ditentukan tidak ada, itu akan membuat sumber daya di server web.
Membuat Permintaan HAPUS HTTP
Permintaan HTTP DELETE adalah metode untuk menghapus sumber daya tertentu dari server web. Mirip dengan permintaan PUT, permintaan DELETE bersifat idempoten. Mengirim permintaan DELETE yang sama berkali-kali ke sumber daya yang sama akan menghasilkan hasil yang sama di server.
Anda dapat membuat permintaan HAPUS dengan curl dengan menjalankan perintah di bawah ini:
curl -X DELETE http://example.com/api/users/3
Perintah di atas mengirimkan permintaan DELETE ke server web yang ditentukan dalam URL di atas dan menghapus sumber daya yang ditentukan.
Hapus permintaan secara permanen menghapus sumber daya yang ditentukan dari server. Jadi, server web yang mendukung DELETE biasanya memerlukan bentuk autentikasi atau otorisasi sebelum Anda dapat membuat permintaan ini.
Berikut cara membuat permintaan HAPUS dengan tajuk otorisasi:
curl -X DELETE -H "Authorization: Bearer my_access_token" \
https://example.com/api/users/3
Perintah di atas menyediakan informasi autentikasi di header permintaan menggunakan metode autentikasi Bearer dengan -H bendera. Otorisasi: Pembawa my_access_token adalah nilai tajuk. my_access_token adalah placeholder untuk nilai token akses Anda yang sebenarnya.
Cara Lain Anda Dapat Membuat Permintaan HTTP
Selain curl, ada beberapa cara untuk membuat permintaan HTTP tergantung pada konteks permintaan. Metode yang paling umum termasuk menggunakan browser web seperti Chrome, alat GUI seperti Postman, atau klien API.
Masing-masing opsi ini hadir dengan kelebihan dan pengorbanannya. Pada akhirnya, pilihan alat Anda akan bergantung pada kebutuhan tugas Anda.