Saya berencana menggunakan PHP untuk persyaratan sederhana. Saya perlu mengunduh konten XML dari URL, dan saya perlu mengirim permintaan GET HTTP ke URL itu.
Bagaimana saya melakukannya di PHP?
Kecuali Anda membutuhkan lebih dari sekadar isi file, Anda dapat menggunakannya file_get_contents
.
$xml = file_get_contents("http://www.example.com/file.xml");
Untuk hal yang lebih kompleks, saya akan menggunakan CURL .
failed to open stream: HTTP request failed!
file_get_contents
jangan biarkan Anda mengajukan permintaan dengan cookie khusus, tajuk, dan hal-hal lain yang biasanya dikirimkan oleh peramban, sehingga Anda mungkin tidak mendapatkan respons yang Anda cari. Dalam hal ini, Anda akan lebih baik menggunakan CURL. (Tapi itu bukan kasus OP.)Untuk permintaan GET / POST yang lebih maju, Anda dapat menginstal perpustakaan CURL ( http://us3.php.net/curl ):
sumber
file_get_contents()
. Sebuah string 4 huruf sederhana membutuhkan waktu sekitar 10 detik dengan itu, sementara curl mengambil lebih masuk akal ~ maks 1 detik.http_get
harus melakukan trik. Keuntunganhttp_get
lebihfile_get_contents
mencakup kemampuan untuk melihat tajuk HTTP, mengakses detail permintaan, dan mengontrol batas waktu koneksi.sumber
Ingat bahwa jika Anda menggunakan proxy, Anda perlu melakukan sedikit trik dalam kode php Anda:
sumber
Bergantung pada apakah pengaturan php Anda memungkinkan fopen pada URL, Anda juga bisa membuka URL dengan argumen get dalam string (seperti http://example.com?variable=value )
Sunting: Membaca kembali pertanyaan Saya tidak yakin apakah Anda ingin meneruskan variabel atau tidak - jika Anda tidak, Anda dapat mengirim permintaan fopen containg http://example.com/filename.xml - jangan ragu untuk mengabaikan bagian variabel = nilai
sumber
Saya suka menggunakan fsockopen terbuka untuk ini.
sumber
Di sisi lain, menggunakan REST API dari server lain sangat populer di PHP. Misalkan Anda mencari cara untuk mengarahkan kembali beberapa permintaan HTTP ke server lain (misalnya mendapatkan file xml). Ini adalah paket PHP untuk membantu Anda:
Jadi, dapatkan file xml:
sumber
Guzzle adalah perpustakaan yang sangat terkenal yang membuatnya sangat mudah untuk melakukan semua jenis panggilan HTTP. Lihat https://github.com/guzzle/guzzle . Instal dengan
composer require guzzlehttp/guzzle
dan jalankancomposer install
. Sekarang kode di bawah ini sudah cukup untuk panggilan http.sumber