10

我正在搜索 Guzzle 6 中的请求总时间,就在一个简单的 GET 请求之后:

$client = new GuzzleHttp\Client();
$response = client->get('http://www.google.com/');

但是在文档中找不到任何关于此的内容。任何想法 ?

非常感谢。

4

5 回答 5

22

在 Guzzle 6.1.0 中,您可以使用“on_stats”请求选项来获取传输时间等。

更多信息可以在请求选项 - on_stats中找到

https://github.com/guzzle/guzzle/releases/tag/6.1.0

于 2015-09-18T09:32:07.747 回答
4

您可以使用 setter 和 getter。

   private $totaltime = 0;

   public function getTotaltime(){
        return $this->totaltime;

    }
    public function setTotaltime($time){
        $this->totaltime = $time;

    }

    $reqtime= new self();
    $response = $client->post($endpointLogin, [
                    'json' => $payload,
                    'headers' => $this->header,
                    'on_stats' => function (TransferStats $stats) use ($reqtime)  {

                      $stats->getTransferTime();

                      //** set it here **//
                      $reqtime->setTotaltime($stats->getTransferTime());

                }

      ]);

       dd($reqtime->getTotaltime());
于 2020-07-31T04:08:09.793 回答
1
$client = new GuzzleHttp\Client();
$one = microtime(1);
$response = $client->get('http://www.google.com/');
$two = microtime(1);
echo 'Total Request time: '. ( $two - $one );
于 2015-07-10T12:55:18.840 回答
1

基于@Michael 帖子的具体示例。

$client = new GuzzleHttp\Client();

$response = $client->get('http://www.google.com/', [
    'on_stats' => function (\GuzzleHttp\TransferStats $stats) {
       echo $stats->getEffectiveUri() . ' : ' . $stats->getTransferTime(); 
    }
]);
于 2019-09-10T09:34:54.350 回答
-1

尽管它仍然是 Guzzle 5.3,但我遇到了类似的问题。

请参阅Guzzle 5.3 - 获取异步请求的请求持续时间

也许在 Guzzle6 中收听一个事件并检索 TransferInfo 也会为您解决问题。

这适用于同步和异步请求。

于 2015-09-01T09:50:01.433 回答