【发布时间】:2020-02-25 01:12:15
【问题描述】:
我正在尝试实现 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);
我需要等待响应才能将状态从UpdatePending 更改为UpdateCompleted
API 文档:
继续请求第 0 页,直到获得带有 pageIndex=0 的 UpdatesComplete 以半秒到一秒的间隔。一旦你得到 UpdatesComplete 您可以要求任何页面和页面大小。
当状态为 UPDATESPENDING 时,您应该只请求第 0 页 因为每个页面的内容可能会在更新之前发生变化 已完成。
如何等待响应改变状态...
我试试:
while ($res1['Status'] == 'UpdatesPending') {
echo 'waiting';
}
dd($res1);
但没有尽头……
如何等待响应改变状态?
【问题讨论】:
-
你需要一个 do/while 循环。在循环内请求状态(代码的前 3 行),然后在状态更改时中断它。确保为其添加睡眠,否则您将在他们的服务器上发送垃圾邮件,直到它发生变化。
-
@aynber 请写为答案
标签: php laravel api guzzle skyscanner