首页 > 解决方案 > PHP等待响应更改状态

问题描述

我正在尝试实现 SkyScanner API...

我需要打电话:

"http://partners.api.skyscanner.net/apiservices/pricing/uk1/v1.0/
    {SessionKey}?apiKey={apiKey}
    &pageIndex=0
    &pageSize=10"

所以我写:

$res1 = $client1->get('http://partners.api.skyscanner.net/apiservices/pricing/uk2/v1.0/'.$session_id.'?apikey=APIKEY&pageIndex=0&pageSize=10"');

 $res1 = json_decode($res1->getBody()->getContents(), true);
$res1 = collect($res1);

我需要等待响应将状态从更改UpdatePendingUpdateCompleted

API 文档:

继续请求第 0 页,直到您以半秒到一秒的间隔获得具有 pageIndex=0 的 UpdatesComplete。获得 UpdatesComplete 后,您可以请求任何页面和页面大小。

当状态为 UPDATESPENDING 时,您应该只请求第 0 页,因为在更新完成之前,每个页面的内容都可能发生变化。

如何等待响应更改状态...

我尝试:

while ($res1['Status'] == 'UpdatesPending') {
    echo 'waiting';
}

dd($res1);

但没有尽头...

如何等待更改状态的响应?

标签: phplaravelapiguzzleskyscanner

解决方案


您可以'waiting'在代码之前回显,然后completed在另一行中完成回显

echo 'waiting...';
$res1 = $client1->get('http://partners.api.skyscanner.net/apiservices/pricing/uk2/v1.0/'.$session_id.'?apikey=APIKEY&pageIndex=0&pageSize=10"');

$res1 = json_decode($res1->getBody()->getContents(), true);
$res1 = collect($res1);
echo 'completed';


推荐阅读