Laravel Guzzle ialah klien HTTP dalam rangka kerja Laravel Ia menyediakan antara muka yang ringkas dan berkuasa yang membolehkan kami menghantar permintaan HTTP dan mendapatkan respons HTTP dengan mudah. Terutamanya dalam senario permintaan tak segerak, Laravel Guzzle boleh meningkatkan prestasi dan kelajuan tindak balas kami.
Secara amnya, kita perlu berkomunikasi dengan pelayan melalui klien HTTP, lulus entiti atau parameter permintaan, dan kemudian dapatkan respons daripada pelayan, seperti yang ditunjukkan di bawah:
$client = new Client(['base_uri' => 'http://httpbin.org']); $response = $client->request('GET', '/get', ['timeout' => 2]); echo $response->getBody();
Dalam ini contoh , kami mencipta URI asas menggunakan kelas Pelanggan Guzzle, menunjuk ke tapak web httpbin.org dan mencipta permintaan GET dengan tamat masa ditetapkan kepada 2 saat. Kemudian kami mendapat kandungan respons melalui kaedah $response->getBody().
Walau bagaimanapun, apabila kami perlu membuat permintaan kelompok besar, kaedah permintaan segerak ini akan menggunakan sumber pelayan kami dengan cepat dan mengurangkan prestasi perkhidmatan dan kelajuan tindak balas kami. Pada ketika ini, permintaan tak segerak boleh membantu kami.
Permintaan tak segerak merujuk kepada permintaan yang tidak perlu menunggu respons daripada pelayan, tetapi hanya perlu mengedarkan permintaan kepada pelayan dan kemudian meneruskan operasi seterusnya. Apabila pelayan membalas permintaan, kami memperoleh kandungan respons dengan cara tertentu. Pendekatan ini boleh meningkatkan prestasi perkhidmatan kami dan kepantasan tindak balas.
Seterusnya, mari kita lihat bagaimana Laravel Guzzle melaksanakan permintaan tak segerak:
$client = new \GuzzleHttp\Client(); $promises = [ $client->getAsync('http://httpbin.org/get'), $client->getAsync('http://httpbin.org/get?foo=bar'), $client->getAsync('http://httpbin.org/get?baz=qux') ]; $results = GuzzleHttp\Promise\unwrap($promises); foreach ($results as $result) { echo $result->getBody(); }
Dalam contoh ini, kami menggunakan kaedah getAsync Guzzle untuk menghantar permintaan tak segerak, dan Objek janji yang dikembalikan ialah dimasukkan ke dalam tatasusunan $promises. Apabila kita perlu mendapatkan kandungan respons, gunakan kaedah buka bungkus Guzzle untuk mendapatkan hasil semua janji, kemudian gelung melalui keputusan dan dapatkan kandungan respons melalui kaedah $result->getBody().
Ringkasnya, Laravel Guzzle, sebagai klien HTTP rangka kerja Laravel, mempunyai prestasi yang baik dalam permintaan tak segerak dan boleh membantu kami meningkatkan prestasi perkhidmatan dan kelajuan tindak balas. Permintaan tak segerak ialah penyelesaian yang sangat baik apabila kita perlu membuat permintaan kelompok besar.
Atas ialah kandungan terperinci Bercakap tentang masalah permintaan asynchronous guzzle laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!