[PHP] 使用guzzle發送異步的HTTP請求


PHP中請求一個HTTP服務,一般都是阻塞的, 如果有多個HTTP請求 , 需要串行的執行 , 一個接一個的請求 , 可以使用guzzle php這個類庫來異步的同時發送多個HTTP請求 .

結果的響應時間取決於最長的那個請求的響應時間

 

測試代碼如下:

                $client = new \GuzzleHttp\Client();
                // 發送一個異步請求
                $request = new \GuzzleHttp\Psr7\Request('GET', 'http://www.sopans.com');
                $request2 = new \GuzzleHttp\Psr7\Request('GET', 'http://www.sopans.com/laruence');
                $request3 = new \GuzzleHttp\Psr7\Request('GET', 'http://www.sopans.com/about');
                $promise = $client->sendAsync($request)->then(function ($response) {
                                echo 111;
                                }); 
                $promise = $client->sendAsync($request2)->then(function ($response)use($client,$request3) {
                                $client->sendAsync($request3)->then(function ($res){
                                                echo 444;
                                                }); 
                                echo 222;
                                }); 
                echo 333;
                $promise->wait();

返回 333  111 444 222 , 先執行的下面的代碼 , 后執行的請求響應地方的代碼 , 達到異步的效果

安裝使用composer

composer require guzzlehttp/guzzle

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM