Cara menggunakan php parse http headers

2. Buat file php dengan nama content-type-header.php simpan dalam folder php-request-header, isinya sebagai berikut :









3. Selanjutnya Buka postman, setting sebagai berikut :


      1. Pilih method GET

      2. isi url dengan http://localhost/php-request-header/content-type-header.php

      3. Tab Header isi key = Content-Type , Value = application/json

      4. Klik Send


Maka Hasilnya seperti gambar dibawah ini :





Catatan : 





       Value = application/json --> untuk JSON


       Value = application/json --> untuk XML





B. Implement Basic Authentication to the endpoint that change data in database.


1. Buat file dengan nama basic-auth-header.php,simpan di folder php-request-header yang sudah dibuat tadi, isi nya sebagai berikut :

$headers = "HTTP/1.1 302 Found
Server: nginx
Date: Sat, 27 Apr 2013 08:07:57 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 976
Connection: keep-alive
X-Frame-Options: sameorigin
X-Runtime: 443
Status: 302
Cache-Control: max-age=86400
Expires: Sun, 28 Apr 2013 08:07:56 GMT
Vary: Accept-Encoding,User-Agent
Strict-Transport-Security: max-age=3600 ; includeSubDomains";

if (!function_exists('http_parse_headers')) {
    function http_parse_headers ($raw_headers) {
        $headers = [];

        foreach (explode("\n", $raw_headers) as $i => $h) {
            $h = explode(':', $h, 2);

            if (isset($h[1])) {
                $headers[$h[0]] = trim($h[1]);
            }
        }

        return $headers;
    }
}

var_dump(http_parse_headers($headers));
?>

array(12) {
  ["Server"]=>
  string(5) "nginx"
  ["Date"]=>
  string(29) "Sat, 27 Apr 2013 08:07:57 GMT"
  ["Content-Type"]=>
  string(24) "text/html; charset=utf-8"
  ["Content-Length"]=>
  string(3) "976"
  ["Connection"]=>
  string(10) "keep-alive"
  ["X-Frame-Options"]=>
  string(10) "sameorigin"
  ["X-Runtime"]=>
  string(3) "443"
  ["Status"]=>
  string(3) "302"
  ["Cache-Control"]=>
  string(13) "max-age=86400"
  ["Expires"]=>
  string(29) "Sun, 28 Apr 2013 08:07:56 GMT"
  ["Vary"]=>
  string(26) "Accept-Encoding,User-Agent"
  ["Strict-Transport-Security"]=>
  string(32) "max-age=3600 ; includeSubDomains"
}

Agar dapat berkomunikasi dengan aplikasi yang lain, aplikasi kita harus mampu melakukan HTTP Request.

Misalnya:

Saat ada input barang terbaru, maka langsung di posting otomatis ke Twitter.

User (Input Barang) --> Aplikasi --> API Twitter

Hal ini harus dilakukan melalui HTTP Request, karena sebagian besar web service atau API menggunakan protokol HTTP.

Salah satu library yang kita bisa gunakan untuk melakukan HTTP Request di PHP adalah CURL.

Apa itu Curl?

Curl adalah sebuah program dan library untuk mengirim dan mengambil data melalui URL.

Curl adalah sebuah program:

Aritnya curl adalah sebuah program atau tools yang digunakan pada command line (CMD).

curl https://www.petanikode.com

Curl adalah sebuah libarary:

Artinya sekumpulan fungsi-fungsi curl yang dibungkus dalam paket

curl https://www.petanikode.com
9 dan bisa digunakan dalam berbagai macam bahasa pemrograman.

Contoh Penerapan Curl

Curl untuk membuat Bot, msialnya Bot Telegram untuk mengetahui cuaca…

Cara menggunakan php parse http headers

Agar server bot bisa mengambil data dari server lain, maka dia harus mampu membuat Http Request, di sinilah Curl digunakan.

Tidak hanya untuk itu saja penerapan Curl…

Bisa juga diterapkan untuk:

  • Mengambil halaman web lalu mengubahnya jadi PDF;
  • Upload dan Download File;
  • Melakukan Login;
  • Scrape;
  • dan sebagainya.

Sejarah Singkat Curl

Curl awalnya bernama HttpGet dari versi pertama sampai ke-3.

HttpGet awalnya hanya mendukung protokol Http saja…

…lalu semakin berkembang dan banyak protokol yang ditambahkan.

Akhirnya pada rilis versi yang ke-4, nama HttpGet tidak lagi digunakan.

Sekarang namanya adalah Curl (mulai ditetapkan pada 20 Maret 1998).

Diberikan nama Curl, karena digunakan untuk download/upload data melalui URL.

Huruf “c” artinya “See” (melihat), jadi kalau cURL di-eja menjadi “See URL”. Selain itu, huruf “c” juga mengacu kepada client.

Instalasi dan Konfigurasi Curl

Seperti yang kita ketahui, ada dua bentuk curl: program dan library.

Jika ingin menginstal programnya, maka gunakan perintah:

apt install curl

Tapi jika ingin menginstal library untuk PHP, maka gunakan perintah:

apt install php-curl

Pada Linux, curl akan otomatis diaktifkan.

Kita bisa mengeceknya dengan kode ini:

<?php

phpinfo();

?>

Silahkan taruh di

apt install curl
0 atau
apt install curl
1 dan cobalah buka melalui localhost.

Jika muncul seperti ini, berarti curl sudah aktif dan bisa digunakan.

Cara menggunakan php parse http headers

Sedangkan untuk Windows (XAMPP), library curl sudah terinstal…

…tinggal kita aktifkan saja.

Caranya:

Silahkan buka file-file ini dengan teks editor.

C:\Program Files\xampp\apache\bin\php.ini
C:\Program Files\xampp\php\php.ini
C:\Program Files\xampp\php\php5\php.ini

Kemudian cari baris yang ini:

;extension=php_curl.dll

Silahkan dihapus titik-komanya (

apt install curl
2).

extension=php_curl.dll

Simpan…

Setelah itu, restart server apache…maka sekarang Curl sudah aktif.

Cara Menggunakan Curl pada PHP

Ada 4 langkah penggunaan Curl di PHP:

  1. Inisialisasi;
  2. Set Option;
  3. Eksekusi Curl;
  4. Tutup Curl;

Setiap kita ingin menggunakan fungsi Curl, kita haru melakukan inisialisasi terlebih dahulu dengan cara seperti ini:

<?php 
// create curl resource 
$ch = curl_init(); 

Fungsi yang digunakan untuk melakukan inisialisasi adalah

apt install curl
3.

Setelah itu, kita harus memberikan nilai options seperti alamat URL yang akan dituju, format hasilnya, header, dll.

Untuk memberikan options, kita menggunakan fungsi

apt install curl
4 seperti ini:

 // set url 
curl_setopt($ch, CURLOPT_URL, "example.com"); 

//return the transfer as a string 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

Berikutnya melakukan eksekusi:

curl https://www.petanikode.com
0

Pada tahapan eksekusi, Curl akan melakukan HTTP Request sesuai dengan options yang diberikan.

Fungsi yang digunakan untuk mengeksekusi Curl adalah

apt install curl
5.

Karena kita sudah memberikan options hasil Curl akan berupa string, maka variabel

apt install curl
6 akan berisi sebuah string.

Kita bisa melihat isinya dengan

apt install curl
7.

curl https://www.petanikode.com
1

Terakhir menutup Curl dengan fungsi

apt install curl
8, karena sudah tidak digunakan lagi.

curl https://www.petanikode.com
2

Kode lengkapnya akan seperti ini:

curl https://www.petanikode.com
3

Saat kita eksekusi skrip PHP di atas, maka akan menghasilkan seperti ini:

Cara menggunakan php parse http headers

Halaman di atas didapat dari example.com.

Coba ubah URL-nya menjadi https://www.google.co.id/.

curl https://www.petanikode.com
4

Hasilnya:

Cara menggunakan php parse http headers

Mmbungkus Curl dalam Fungsi

Baru kode di atas bisa kita buat dalam bentuk fungsi agar tidak diketik ulang terus menerus.

Fungsinya akan menjadi seperti ini:

curl https://www.petanikode.com
5

Lalu kita tinggal gunakan seperti ini:

curl https://www.petanikode.com
6

Mengambil Data JSON dengan Curl

Biasanya webservice menyediakan data berupa JSON. Data JSON ini bisa kita ambil dengan CURL, lalu melakukan parse dengan fungsi

apt install curl
9.

Contoh:

Kita akan mengambil data JSON dari Github: https://api.github.com/users/petanikode

curl https://www.petanikode.com
7

Perhatikan options yang kita berikan pada contoh di atas…

Kita memberikan option user agent, karena untuk mengakses API Github, kita harus menyertakan user agent.

Hasilnya akan seperti ini:

Cara menggunakan php parse http headers

Mengubah Data JSON ke HTML

Kita dapat melakukan apapun terhadap data yang kita dapatkan. Bisa disimpan ke database atau ditampilkan ke dalam HTML.