Belajar PHP CURL

| Senin, 01 Desember 2014

Pengenalan CURL

Curl merupakan librari php yang memungkinkan anda untuk mentransfer data melalui berbagai protokol. Curl ini, banyak digunakan sebagai cara untuk mengirim atau meminta data dari satu atau beberapa situs, termasuk didalamnya seperti interaksi API dan oAuth. Pada dasarnya permintaan dengan cURL tidak dibatasi dalam hal apapun, mirip seperti permintaan HTTP dasar, juga bisa untuk upload FTP dan yang lebih lebih kompleks interaksi otentifikasi dengan situs HTTPS tertutup. Nah pada postingan kali ini, kami akan menunjukan beberapa perbedaan sederhana penggunaan CURL antara permintaan GET dan permintaan POST 

Penggunaan Dasar 

Sebelum kita mulai melakukan permintaan isi halaman dengan Curl, kita harus terlebih dahulu tahu instance dari Curl - anda dapat melakukan curl dengan memanggil fungsi curl_init(); yang mengembalikan data Curl. Fungsi ini membutuhkan satu parameter yang merupakan URL.

Pengaturan 

Setelah selesai menginstace Curl, kita bisa mulai menuliskan beberapa pengaturan:

  • CURLOPT_RETURNTRANSFER - Mengembalikan respon sebagai string
  • CURLOPT_CONNECTTIMEOUT - Mengembalikan Jumlah detik yang dihabiskan saat mencoba mengkoneksi
  • CURLOPT_TIMEOUT - Jumlah detik untuk cURL
  • CURLOPT_USERAGENT - Nilai Useragent digunakan untuk permintaan 
  • CURLOPT_URL - URL untuk mengirim permintaan ke 
  • CURLOPT_POST - Kirim permintaan sebagai POST 
  • CURLOPT_POSTFIELDS - Array untuk data dalam permintaan POST 

Anda dapat mengatur konfigurasi CURL dengan menggunakan metode curl_setopt(), yang mengambil tiga parameter yaitu: sumber Curl, konfigurasi dan nilai. Berikut contoh penggunaan CURL paling sederhana.

 
  1. $curl = curl_init (); 
  2. curl_setopt ($curl, CURLOPT_URL, 'http://www.hadinug.net'); 

Seperti disebutkan, kita dapat mengatur cURL dengan mengirimkan parameter melalui cURL:

 
  1. $curl = curl_init ('http://www.hadinug.net'); 
Kita juga bisa mengatur beberapa setting pada satu waktu dengan memparsing array pengaturan dan nilai-nilai ke fungsi curl_setopt_array():

 
  1. $curl = curl_init ();
  2. curl_setopt_array ($ curl, array (
  3. CURLOPT_RETURNTRANSFER => 1,
  4. CURLOPT_URL => 'http://www.hadinug.net'
  5. ));

Mengirim permintaan 

Ketika semua opsi yang dikirim, dan permintaan siap untuk dikirim, kita dapat menggunakan mdetode curl_exec() untuk mengeksekusi permintaan Curl. Fungsi ini mengembali tiga nilai yang berbeda:

  • false - jika terjadi kesalahan saat mengeksekusi permintaan 
  • true - jika permintaan dijalankan tanpa kesalahan dan CURLOPT_RETURNTRANSFER = false 
  • result - jika permintaan dijalankan tanpa kesalahan dan CURLOPT_RETURNTRANSFER = true

Dengan menggunakan contoh sebelumnya, kita akan mencoba mendapatkan hasilnya atau nilai kembali, kita akan menggunakan kode berikut:

 
  1. $result = curl_exec ($curl); 

Variable $result sekarang berisi tanggapan atau kontent dari halaman. Dalam hal ini hasil permintaan curl bisa berupa JSON, string atau HTML.

Tutup Permintaan Curl

Setelah anda selesai mengirimkan permintaan dan mendapat hasil kembali nya, anda harus menutup permintaan Curl agar beberapa sumber daya sistem tetap terjaga. Caranya sangat sederhana, hanya dengan menggunakan mdetode curl_close().

Permintaan GET

Merupakan metode permintaan standar yang sering digunakan. Jika anda ingin mengirim parameter bersama dalam permintaan Anda hanya menambahkan request string ke URL sebagai string kueri seperti http://www.hadinug.net/?item1=value&item2=value2. 

Jadi untuk mengirim permintaan GET ke URL seperti contoh url di atas dan mengembalikan hasil kita bisa menggunakan cara berikut:

 
  1. / / get cURL
  2. $curl = curl_init ();
  3. / / Set beberapa pilihan
  4. curl_setopt_array ($ curl, array (
  5. CURLOPT_RETURNTRANSFER => 1,
  6. CURLOPT_URL => 'http://www.hadinug.net/?item1=value&item2=value2',
  7. CURLOPT_USERAGENT => 'hadinug.net Contoh Curl Request'
  8. ));
  9. / / Kirim permintaan & menyimpan respon di variable $resp
  10. $resp = curl_exec($curl);
  11. / / Tutup permintaan
  12. curl_close($curl);


Permintaan POST

Satu-satunya perbedaan antara sintaks permintaan  POST dan GET adalah pada pengaturan, dan  jika anda ingin mengirim beberapa data, anda mengatur config curl dengan CURLOPT_POST menjadi true dan mengirimkan data array dengan CURLOPT_POSTFIELDS 

Contohnya adalah sebagai berikut:

 
  1. / /get cURL
  2. $curl = curl_init();
  3. / / Set beberapa pilihan
  4. curl_setopt_array ($ curl, array (
  5. CURLOPT_RETURNTRANSFER => 1,
  6. CURLOPT_URL => 'http://www.hadinug.net',
  7. CURLOPT_USERAGENT => 'hadinug.net Contoh cURL Request',
  8. CURLOPT_POST => 1,
  9. CURLOPT_POSTFIELDS => array (
  10. item1 => 'value',
  11. item2 => 'value2'
  12. )
  13. ));
  14. / / Kirim permintaan & menyimpan respon di variable $resp
  15. $resp = curl_exec($curl);
  16. / / Tutup permintaan
  17. curl_close($curl);


Kesalahan (Error)

Bagi seorang programmer sejati error bukanlah sebuah masalah, dan mungkin untuk para programmer yang baru hal ini bisa jadi sesuatu yang sangat menyebalkan. Tapi anda benar-benar perlu khawatir, segala kemungkinan dengan cURL seperti error pasti sering ditemukan.

Berikut ini beberapa fungsi yang dapat Anda gunakan untuk menangani kesalahan ddengan CURL:

  • curl_error() - mengembalikan string pesan kesalahan, akan "kosong'' jika permintaan tidak gagal. 
  • curl_errno() - mengembalikan nomor kesalahan Curl 

 
  1. if (!curl_exec($curl)) { 
  2.     die ("Error CRUL Code". curl_errno ($curl)); 
  3. } 

Kesimpulan

cURL sangat powerfull, dan memiliki banyak kemungkinan dalam penggunaannya. Beberapa situs mungkin hanya melayani permintaan pada halaman untuk beberapa user agent saja, dan ketika bekerja dengan API, beberapa kemungkinan harus anda perhatikan. Jika anda ingin bermain dengan beberapa permintaan Curl, sebaiknya anda mencoba beberapa library oAuth, seperti google, facebook, twitter.
php curl

2 komentar:

  1. ada refrensi dari buku nya ga min, butuh buat TA nih. kalo ada kirim2 dong linknya. yang bisa di ambil daftar pustakanya. maksih.

    BalasHapus

Next Prev
▲Top▲