我通过PHP代理like here访问XML API(航班搜索比较)。
API始终有一个完整的文件供下载。第一个版本声明有0个结果,然后在调用它几次后弹出第一个结果。
API文档说:
结果方法总会给你当前的状态 搜索结果。您可以多次调用它(可能使用ajax调用)
我的问题是,我不知道什么时候完成,即所有结果都已交付。
我试过了:
读取feof
,然后通过fseek()
重置文件位置指示器并等待一点like here但这不起作用,因为流不支持{{ 1}}。
等待几个秒,然后显示结果,但这不能很好地工作,因为API有时需要很长时间(而且我没有得到所有东西)
< / LI>读到fseek()
,然后使用feof
查看是否已将新内容写入文件,但我之后无法做某事......
ftell()
我现在没有想法了。应该怎样做得好?
-T
修改:更改了格式并添加了一些代码
答案 0 :(得分:0)
好的,我联系了其中一位API开发人员。
他告诉我,他们不发送准备信号,因为他们也不知道,当响应完成时。这是因为它们与许多其他API一起使用(毕竟它是比较API)。
他给我的建议/解决方案,他们使用的是轮询几次,每次轮询之间有几秒钟的延迟,然后只需拿走那里的东西然后剩下的就行了。
对我而言似乎相当务实而不是优雅,但他们是这样做的:-)感谢所有试图提供意见的人!