Laravel menyediakan API minimal yang ekspresif di sekitar klien HTTP Guzzle, memungkinkan Anda dengan cepat membuat permintaan HTTP keluar untuk berkomunikasi dengan aplikasi web lain. Bungkus Laravel di sekitar Guzzle difokuskan pada kasus penggunaan yang paling umum dan pengalaman pengembang yang luar biasa Show
Sebelum memulai, Anda harus memastikan bahwa Anda telah menginstal paket Guzzle sebagai ketergantungan aplikasi Anda. Secara default, Laravel secara otomatis menyertakan dependensi ini. Namun, jika sebelumnya Anda telah menghapus paket tersebut, Anda dapat menginstalnya kembali melalui Composer
Membuat permintaanUntuk mengajukan permintaan, Anda dapat menggunakan metode _8, 9, 0, 1, 2, dan 3 yang disediakan oleh fasad 4. Pertama, mari kita pelajari cara membuat permintaan 5 dasar ke URL lain _Metode 9 mengembalikan instance 7, yang menyediakan berbagai metode yang dapat digunakan untuk memeriksa respons
Objek _7 juga mengimplementasikan antarmuka PHP 9, memungkinkan Anda untuk mengakses data respons JSON secara langsung pada respons
Permintaan PembuanganJika Anda ingin membuang instance permintaan keluar sebelum dikirim dan menghentikan eksekusi skrip, Anda dapat menambahkan metode 0 ke awal definisi permintaan Anda _Minta DataTentu saja, ketika membuat _1, 2, dan 3 permintaan untuk mengirim data tambahan dengan permintaan Anda, sehingga metode ini menerima array data sebagai argumen kedua mereka. Secara default, data akan dikirim menggunakan tipe konten ________16______4
DAPATKAN Parameter Kueri PermintaanSaat membuat permintaan _5, Anda dapat menambahkan string kueri ke URL secara langsung atau meneruskan larik pasangan kunci/nilai sebagai argumen kedua ke metode 9
Mengirim Permintaan Bersandikan URL FormulirJika Anda ingin mengirim data menggunakan tipe konten 7, Anda harus memanggil metode 8 sebelum mengajukan permintaan
Mengirim Badan Permintaan MentahAnda dapat menggunakan metode _9 jika Anda ingin memberikan badan permintaan mentah saat mengajukan permintaan. Jenis konten dapat disediakan melalui argumen kedua metode
Permintaan Multi-BagianJika Anda ingin mengirim file sebagai permintaan multi-bagian, Anda harus memanggil metode 0 sebelum membuat permintaan Anda. Metode ini menerima nama file dan isinya. Jika perlu, Anda dapat memberikan argumen ketiga yang akan dianggap sebagai nama file file
Alih-alih meneruskan konten mentah file, Anda dapat meneruskan sumber daya aliran _0HeaderHeader dapat ditambahkan ke permintaan menggunakan metode 1. Metode _1 ini menerima larik pasangan kunci/nilai _1Anda dapat menggunakan metode _3 untuk menentukan jenis konten yang diharapkan aplikasi Anda sebagai tanggapan atas permintaan Anda _2Demi kenyamanan, Anda dapat menggunakan metode _4 untuk menentukan dengan cepat bahwa aplikasi Anda mengharapkan jenis konten 4 sebagai tanggapan atas permintaan Anda _3AutentikasiAnda dapat menentukan kredensial autentikasi dasar dan ringkasan menggunakan metode 6 dan 7, masing-masing _4Token PembawaJika Anda ingin menambahkan token pembawa dengan cepat ke header 8 permintaan, Anda dapat menggunakan metode 9 _5Waktu habisMetode _0 dapat digunakan untuk menentukan jumlah detik maksimum untuk menunggu respons _6Jika batas waktu yang diberikan terlampaui, instance 1 akan dilemparAnda dapat menentukan jumlah detik maksimum untuk menunggu saat mencoba terhubung ke server menggunakan metode 2 _7Coba lagiJika Anda ingin klien HTTP mencoba kembali permintaan secara otomatis jika terjadi kesalahan klien atau server, Anda dapat menggunakan metode 3. Metode _3 menerima jumlah maksimum permintaan yang harus dicoba dan jumlah milidetik yang harus ditunggu Laravel di antara upaya _8Jika perlu, Anda dapat meneruskan argumen ketiga ke metode 3. Argumen ketiga harus berupa callable yang menentukan apakah percobaan ulang harus benar-benar dicoba. Misalnya, Anda mungkin hanya ingin mencoba kembali permintaan jika permintaan awal menemukan 6 _9Jika upaya permintaan gagal, Anda mungkin ingin mengubah permintaan sebelum upaya baru dibuat. Anda dapat melakukannya dengan memodifikasi argumen permintaan yang diberikan ke callable yang Anda berikan ke metode 3. Misalnya, Anda mungkin ingin mencoba lagi permintaan dengan token otorisasi baru jika upaya pertama menghasilkan kesalahan autentikasi 0Jika semua permintaan gagal, instance ________30______8 akan dilempar. Jika Anda ingin menonaktifkan perilaku ini, Anda dapat memberikan argumen 9 dengan nilai 0. Saat dinonaktifkan, respons terakhir yang diterima oleh klien akan dikembalikan setelah semua percobaan ulang dilakukan 1
Penanganan KesalahanTidak seperti perilaku default Guzzle, pembungkus klien HTTP Laravel tidak memberikan pengecualian pada kesalahan klien atau server ( 4 dan 5 respons level dari server). Anda dapat menentukan apakah salah satu kesalahan ini dikembalikan menggunakan metode 6, 7, atau 8 2Melempar PengecualianJika Anda memiliki instance respons dan ingin melempar instance 8 jika kode status respons menunjukkan kesalahan klien atau server, Anda dapat menggunakan metode 9 atau 01 3Instance _8 memiliki properti 03 publik yang memungkinkan Anda untuk memeriksa respons yang dikembalikanMetode _9 mengembalikan instance respons jika tidak terjadi kesalahan, memungkinkan Anda untuk menghubungkan operasi lain ke metode 9 4Jika Anda ingin melakukan beberapa logika tambahan sebelum pengecualian dilemparkan, Anda dapat memberikan penutupan ke metode 9. Pengecualian akan dilemparkan secara otomatis setelah penutupan dipanggil, jadi Anda tidak perlu melemparkan kembali pengecualian dari dalam penutupan 5Guzzle MiddlewareKarena klien HTTP Laravel didukung oleh Guzzle, Anda dapat memanfaatkan Guzzle Middleware untuk memanipulasi permintaan keluar atau memeriksa respons yang masuk. Untuk memanipulasi permintaan keluar, daftarkan middleware Guzzle melalui metode 07 dikombinasikan dengan pabrik middleware 08 Guzzle 6Demikian juga, Anda dapat memeriksa respons HTTP yang masuk dengan mendaftarkan middleware melalui metode 07 dikombinasikan dengan pabrik middleware 10 Guzzle 7Opsi GuzzleAnda dapat menentukan opsi permintaan Guzzle tambahan menggunakan metode 11. Metode 11 menerima larik pasangan kunci/nilai 8Permintaan BersamaanTerkadang, Anda mungkin ingin membuat beberapa permintaan HTTP secara bersamaan. Dengan kata lain, Anda ingin beberapa permintaan dikirimkan pada saat yang sama, bukan mengeluarkan permintaan secara berurutan. Hal ini dapat menyebabkan peningkatan kinerja yang substansial saat berinteraksi dengan API HTTP yang lambat Untungnya, Anda dapat melakukannya dengan menggunakan metode ________9______13. Metode 13 menerima penutupan yang menerima instance 15, memungkinkan Anda dengan mudah menambahkan permintaan ke kumpulan permintaan untuk pengiriman _9Seperti yang Anda lihat, setiap instance respons dapat diakses berdasarkan urutan penambahannya ke kumpulan. Jika mau, Anda dapat memberi nama permintaan menggunakan metode 16, yang memungkinkan Anda untuk mengakses respons yang sesuai dengan nama 0MakroKlien HTTP Laravel memungkinkan Anda untuk mendefinisikan "makro", yang dapat berfungsi sebagai mekanisme yang lancar dan ekspresif untuk mengonfigurasi jalur dan header permintaan umum saat berinteraksi dengan layanan di seluruh aplikasi Anda. Untuk memulai, Anda dapat menentukan makro dalam metode 17 dari kelas 18 aplikasi Anda 1Setelah makro Anda dikonfigurasi, Anda dapat memanggilnya dari mana saja di aplikasi Anda untuk membuat permintaan yang tertunda dengan konfigurasi yang ditentukan 2PengujianBanyak layanan Laravel menyediakan fungsionalitas untuk membantu Anda menulis tes dengan mudah dan ekspresif, dan klien HTTP Laravel tidak terkecuali. Metode _4 fasad 20 memungkinkan Anda menginstruksikan klien HTTP untuk mengembalikan respons stub / dummy saat permintaan dibuatMemalsukan TanggapanMisalnya, untuk menginstruksikan klien HTTP agar mengembalikan respons kode status kosong, 21 untuk setiap permintaan, Anda dapat memanggil metode 20 tanpa argumen _3Memalsukan URL TertentuAlternatifnya, Anda dapat meneruskan array ke metode ________9______20. Kunci array harus mewakili pola URL yang ingin Anda tiru dan respons terkaitnya. Karakter 24 dapat digunakan sebagai karakter pengganti. Setiap permintaan yang dibuat ke URL yang belum dipalsukan sebenarnya akan dieksekusi. Anda dapat menggunakan metode 4 fasad 26 untuk membuat respons rintisan / palsu untuk titik akhir ini 4Jika Anda ingin menentukan pola URL cadangan yang akan menghentikan semua URL yang tidak cocok, Anda dapat menggunakan satu 24 karakter 5Memalsukan Urutan ResponsTerkadang Anda mungkin perlu menentukan bahwa satu URL harus menampilkan serangkaian respons palsu dalam urutan tertentu. Anda dapat melakukannya dengan menggunakan metode _28 untuk membangun tanggapan 6Ketika semua respons dalam urutan respons telah dikonsumsi, setiap permintaan lebih lanjut akan menyebabkan urutan respons melontarkan pengecualian. Jika Anda ingin menentukan respons default yang harus dikembalikan saat urutan kosong, Anda dapat menggunakan metode 29 7Jika Anda ingin memalsukan urutan tanggapan tetapi tidak perlu menentukan pola URL tertentu yang harus dipalsukan, Anda dapat menggunakan metode 30 8Panggilan Balik PalsuJika Anda memerlukan logika yang lebih rumit untuk menentukan respons apa yang akan dikembalikan untuk titik akhir tertentu, Anda dapat memberikan penutupan ke metode 20. Penutupan ini akan menerima instance _32 dan harus mengembalikan instance respons. Dalam penutupan Anda, Anda dapat melakukan logika apa pun yang diperlukan untuk menentukan jenis respons apa yang akan dikembalikan _9Mencegah Permintaan TersesatJika Anda ingin memastikan bahwa semua permintaan yang dikirim melalui klien HTTP telah dipalsukan selama pengujian individu atau rangkaian pengujian lengkap, Anda dapat memanggil metode 33. Setelah memanggil metode ini, setiap permintaan yang tidak memiliki respons palsu yang sesuai akan mengeluarkan pengecualian daripada membuat permintaan HTTP yang sebenarnya _0Memeriksa PermintaanSaat memalsukan respons, Anda mungkin sesekali ingin memeriksa permintaan yang diterima klien untuk memastikan aplikasi Anda mengirimkan data atau header yang benar. Anda dapat melakukannya dengan memanggil metode _34 setelah memanggil 35Metode 36 menerima penutupan yang akan menerima instance 32 dan harus mengembalikan nilai boolean yang menunjukkan apakah permintaan sesuai dengan harapan Anda. Agar tes lulus, setidaknya satu permintaan harus dikeluarkan sesuai dengan harapan yang diberikan _1Jika perlu, Anda dapat menegaskan bahwa permintaan khusus tidak dikirim menggunakan metode 38 _2Anda dapat menggunakan metode _39 untuk menyatakan berapa banyak permintaan yang "dikirim" selama pengujian _3Atau, Anda dapat menggunakan metode 40 untuk menegaskan bahwa tidak ada permintaan yang dikirim selama pengujian _4Merekam Permintaan / TanggapanAnda dapat menggunakan metode _41 untuk mengumpulkan semua permintaan dan tanggapannya yang sesuai. Metode 41 mengembalikan kumpulan array yang berisi instance 32 dan 7 _5Selain itu, metode _41 menerima penutupan yang akan menerima turunan dari 32 dan 7 dan dapat digunakan untuk memfilter pasangan permintaan/respons berdasarkan harapan Anda _6AcaraLaravel mengaktifkan tiga peristiwa selama proses pengiriman permintaan HTTP. Acara 48 dipecat sebelum permintaan dikirim, sedangkan acara 49 dipecat setelah respons diterima untuk permintaan yang diberikan. Acara 50 dipecat jika tidak ada respons yang diterima untuk permintaan yang diberikanPeristiwa 48 dan 50 keduanya berisi properti 53 publik yang dapat Anda gunakan untuk memeriksa instance ________9______32. Demikian pula, peristiwa _49 berisi properti 53 serta properti 03 yang dapat digunakan untuk memeriksa instance 7. Anda dapat mendaftarkan pendengar acara untuk acara ini di 59 penyedia layanan Anda
Bagaimana cara mendapatkan kode respons HTTP di PHP?Untuk versi PHP 4. 0. Untuk mengirim kode respons HTTP, kita perlu menyusun kode respons. Untuk melakukannya, gunakan fungsi header() . Fungsi header() berisi kasus penggunaan khusus yang dapat mendeteksi baris respons HTTP dan menggantinya dengan yang khusus.
Bagaimana cara memanggil URL dan mendapatkan respons dalam PHP?php $url = 'http. //nama-domain/jalur-titik-akhir'; . html", "w"); $curl = curl_init($url); curl_setopt($curl, CURLOPT_FILE, $file); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, false); curl_exec
Bagaimana cara menemukan kode respons untuk URL?Cukup gunakan browser Chrome. Tekan F12 untuk mendapatkan alat pengembang dan lihat tab jaringan . Menampilkan semua kode status, apakah halaman berasal dari cache, dll.
Bagaimana saya bisa mendapatkan kode kesalahan dari respons HTTP?Kode status respons HTTP menunjukkan apakah permintaan HTTP tertentu telah berhasil diselesaikan. . Tanggapan informasional ( 100 – 199 ) Tanggapan sukses ( 200 – 299 ) Pesan pengalihan ( 300 – 399 ) Respons kesalahan klien ( 400 – 499 ) Respons kesalahan server (500 – 599) |