Aplikasi perangkat lunak cURL, yang secara resmi dikenal sebagai "Client for URLs," menyediakan toolkit yang kuat bagi pengembang untuk mengelola transfer data. Ia beroperasi dalam dua mode berbeda: antarmuka baris perintah yang mudah digunakan yang melayani interaksi mendasar dan pustaka yang kuat yang dirancang untuk integrasi tanpa batas ke dalam proyek pemrograman.
Untuk memahami Apidog lebih baik, cobalah sendiri dengan mengklik tombol di bawah ini!
Definisi Formal dari curl_init()
Berdasarkan situs web PHP resmi, fungsi curl_init menginisialisasi sesi cURL dan mengembalikan handle cURL untuk digunakan dengan fungsi curl_setopt(), curl_exec(), dan curl_close().
Parameter yang Terlibat
url
Jika Anda memberikan URL, opsi CURLOPT_URL
akan diatur ke nilainya. Anda juga dapat mengatur opsi ini secara manual menggunakan fungsi curl_setopt().
Namun, perhatikan bahwa protokol file
dinonaktifkan oleh cURL itu sendiri jika open_basedir
telah diatur.
Nilai Kembalian
Fungsi curl_init() mengembalikan handle cURL saat berhasil, dan false
saat terjadi kesalahan.
Apa itu Permintaan PUT?
Permintaan PUT dalam Hypertext Transfer Protocol (HTTP) bertindak sebagai alat yang disempurnakan untuk mengelola sumber daya di server web. Ia menyimpang dari mitranya, permintaan GET (digunakan untuk pengambilan data), dengan secara khusus menargetkan modifikasi di sisi server.
Fungsi Permintaan PUT
Tidak seperti mitranya, permintaan GET yang digunakan untuk mengambil data, permintaan PUT berfokus pada modifikasi informasi di sisi server. Modifikasi ini dapat mencakup dua tindakan utama:
- Memperbarui Sumber Daya yang Ada: Jika sumber daya (seperti akun pengguna atau produk dalam database) sudah ada di URL tertentu, permintaan PUT dapat digunakan untuk memperbarui data terkaitnya.
- Membuat Sumber Daya Baru: Dalam skenario di mana sumber daya tidak ada di URL yang ditentukan, permintaan PUT dapat digunakan untuk membuat sumber daya baru dengan data yang disediakan.
Penempatan Data
Permintaan PUT biasanya mengirimkan data dalam badan permintaan, mirip dengan permintaan POST. Data ini sering kali mewakili keadaan baru atau yang diperbarui dari sumber daya yang ditargetkan.
Idempotensi
Karakteristik yang menentukan dari permintaan PUT adalah sifatnya yang idempoten. Ini menyiratkan bahwa menjalankan permintaan PUT beberapa kali dengan data yang identik akan menghasilkan hasil yang sama. Sederhananya, mengirim permintaan PUT sekali atau beberapa kali dengan data yang sama mengarah pada hasil yang sama di server.
Kasus Penggunaan Umum Permintaan PUT
- Memperbarui profil pengguna atau informasi akun
- Memodifikasi konten yang ada dalam database (misalnya, mengedit postingan blog)
- Mengunggah file baru ke lokasi tertentu di server
Contoh Kode Membuat Permintaan PUT dengan Fungsi curl_init()
Berikut adalah beberapa contoh kode PHP yang dapat Anda rujuk jika Anda ingin membuat permintaan PUT dengan fungsi curl_init()
.
Contoh 1 - Memperbarui Informasi Pengguna (Data JSON)
Contoh ini memperbarui informasi profil pengguna di server menggunakan data JSON.
<?php
$url = "https://www.example.com/api/users/123"; // Ganti dengan ID pengguna sebenarnya
$new_email = "new_email@example.com";
$data = array(
"email" => $new_email
);
$data_json = json_encode($data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); // Atur metode permintaan ke PUT
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json); // Atur data PUT sebagai JSON
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Kembalikan respons
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json', // Atur tipe konten ke JSON
'Authorization: Bearer YOUR_API_KEY' // Tambahkan header otorisasi
));
$response = curl_exec($ch);
curl_close($ch);
if($response) {
echo "Profil pengguna berhasil diperbarui!";
} else {
echo "Error: " . curl_error($ch);
}
?>
Penjelasan Kode:
- Kami mendefinisikan URL target (termasuk ID pengguna) dan alamat email baru.
- Kami membuat array
$data
yang berisi email yang diperbarui dan mengubahnya menjadi JSON menggunakanjson_encode
. - Kami menginisialisasi handle curl dan mengatur metode permintaan ke PUT menggunakan
CURLOPT_CUSTOMREQUEST
. - Kami mengatur data PUT dengan
CURLOPT_POSTFIELDS
dan mengatur header tipe konten ke JSON. - Kami menambahkan header otorisasi dengan kunci API Anda untuk akses aman.
- Kami menjalankan permintaan, menutup handle, dan memeriksa respons yang berhasil.
Contoh 2 - Mengunggah File (Data Mentah)
Contoh ini mengunggah file ke server menggunakan data mentah.
<?php
$url = "https://www.example.com/api/uploads";
$filename = "myfile.txt";
$file_content = file_get_contents($filename); // Baca konten file
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); // Atur metode permintaan ke PUT
curl_setopt($ch, CURLOPT_PUT, 1); // Atur mode unggah PUT
curl_setopt($ch, CURLOPT_INFILE, fopen($filename, "rb")); // Atur file untuk diunggah
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($filename)); // Atur ukuran file
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Kembalikan respons
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/octet-stream' // Atur tipe konten untuk data mentah
));
$response = curl_exec($ch);
curl_close($ch);
if($response) {
echo "File berhasil diunggah!";
} else {
echo "Error: " . curl_error($ch);
}
?>
Penjelasan Kode:
- Kami mendefinisikan URL unggah dan nama file.
- Kami membaca konten file menggunakan
file_get_contents
. - Kami menginisialisasi handle curl dan mengatur metode permintaan ke PUT.
- Kami mengaktifkan mode unggah PUT dengan
CURLOPT_PUT
. - Kami menentukan file untuk diunggah menggunakan
CURLOPT_INFILE
dan ukurannya denganCURLOPT_INFILESIZE
. - Kami mengatur header tipe konten untuk menunjukkan data mentah.
- Kami menjalankan permintaan, menutup handle, dan memeriksa respons yang berhasil.
Contoh 3 - PUT Bersyarat dengan ETag
Contoh ini menunjukkan permintaan PUT bersyarat menggunakan ETag untuk penguncian optimis.
<?php
$url = "https://www.example.com/api/posts/123";
$new_title = "Judul yang Diperbarui";
$etag = "some-etag-value"; // Ganti dengan ETag sebenarnya
$data = array(
"title" => $new_title
);
$data_json = json_encode($data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); // Atur metode permintaan ke PUT
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json); // Atur data PUT sebagai JSON
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Kembalikan respons
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json', // Atur tipe konten ke JSON
'If-Match: ' . $etag // Tambahkan ETag untuk pembaruan bersyarat
));
$response = curl_exec($ch);
curl_close($ch);
if($response) {
echo "Postingan berhasil diperbarui!";
} else {
$error = curl_error($ch);
if (strpos($error, '412 Precondition Failed') !== false) {
echo "Pembaruan gagal: ETag tidak cocok (data mungkin telah dimodifikasi oleh pengguna lain).";
} else {
echo "Error: " . $error;
}
}
?>
Penjelasan Kode:
- Kami mendefinisikan URL target (ID postingan), judul baru, dan ETag yang diambil dari server.
- Kami membuat array
$data
dan mengubahnya menjadi JSON. - Kami mengatur metode permintaan ke PUT dan menyertakan data PUT.
- Kami menambahkan header
If-Match
dengan ETag untuk memastikan pembaruan hanya terjadi jika versi sisi server saat ini cocok dengan ETag. Ini mencegah penimpaan perubahan yang dibuat oleh pengguna lain (penguncian optimis). - Kami memeriksa respons untuk keberhasilan dan menangani kesalahan tertentu (412 Precondition Failed) yang menunjukkan ketidakcocokan ETag.
Catatan untuk Diingat
Harap pastikan bahwa contoh kode di atas tidak disalin dan ditempel ke IDE Anda, karena contoh tersebut disederhanakan dan akan memerlukan modifikasi lebih lanjut agar sesuai dengan kebutuhan aplikasi Anda.
Untuk dokumentasi resmi, Anda dapat memeriksanya di: https://www.php.net/manual/en/book.curl.php

Percepat Pengembangan API cURL Anda dengan Apidog
Apidog adalah platform pengembangan API canggih yang mampu mengubah baris perintah cURL menjadi tampilan grafis yang indah dan intuitif, sehingga memudahkan pengembang untuk memahami dan mengatasi API.

Anda tidak hanya dapat mengimpor perintah cURL, tetapi juga membangun, men-debug, membuat mock, dan mendokumentasikannya seperti API lainnya! Dengan kenyamanan seperti itu, Apidog dapat mendukung Anda dengan alur kerja tanpa gangguan.
Impor API cURL Dalam Hitungan Detik

Apidog mendukung pengguna yang ingin mengimpor perintah cURL ke Apidog. Dalam proyek kosong, klik tombol +
berwarna ungu di sekitar bagian kiri atas jendela Apidog, dan pilih Impor cURL
.

Salin dan tempel perintah cURL ke dalam kotak yang ditampilkan di layar Anda.

Jika berhasil, Anda sekarang seharusnya dapat melihat perintah cURL dalam bentuk permintaan API.
Tidak Yakin dengan PHP? Hasilkan Kode Dengan Apidog
Jika Anda tidak memiliki pengalaman sebelumnya dalam membuat kode dalam bahasa pemrograman PHP, jangan khawatir! Apidog memiliki fitur pembuatan kode yang dapat Anda andalkan, memberi Anda kerangka kode untuk beberapa bahasa pemrograman lainnya.

Pertama, temukan tombol </> Hasilkan Kode
pada API atau permintaan apa pun, dan pilih Hasilkan Kode Klien
pada daftar drop-down.

Selanjutnya, pilih PHP, dan temukan bagian cURL. Anda sekarang akan melihat kode yang dihasilkan untuk cURL. Yang harus Anda lakukan adalah menyalin dan menempelkannya ke IDE (Integrated Development Environment) Anda dan melanjutkan pengembangan aplikasi Anda.
Kesimpulan
Dengan menguasai permintaan PUT dengan curl_init()
, Anda telah membuka alat yang ampuh untuk berinteraksi dengan server web. Fungsi ini memberdayakan Anda untuk tidak hanya memperbarui sumber daya yang ada tetapi juga membuat yang baru. Baik Anda mengelola profil pengguna, memodifikasi entri database, atau mengunggah file, permintaan PUT menawarkan metode yang tepat dan efisien untuk manipulasi data.
Ingat, curl_init()
menyediakan pendekatan serbaguna, memungkinkan Anda untuk menentukan format data, mengatur header khusus untuk komunikasi yang aman, dan bahkan menangani skenario seperti pembaruan bersyarat dan pelaporan kemajuan untuk transfer file besar. Dengan pengetahuan baru ini, Anda dapat dengan percaya diri memanfaatkan permintaan PUT untuk meningkatkan fungsionalitas dan kinerja aplikasi web Anda.