【问题标题】:Multiple API requests with OVH API wrapper使用 OVH API 包装器的多个 API 请求
【发布时间】:2016-07-12 11:44:09
【问题描述】:

我正在尝试使用官方 PHP 包装器创建一个 Web 界面以与 OVH 的 API 进行交互。

首先我得到我的 IP 列表:

$ips = $ovh->get('/ip');

但是,对于每个 IP 地址,我想获取相关信息并将它们放在一个表中,所以我这样做了:

foreach ($ips as $ip) {
    $ip_infos = $ovh->get('/ip/' . $ip_api);
}

它有效,但是对于每个呼叫,我都必须等待前一个呼叫回来。因此,由于 ~100 IP,加载整个页面需要 30~40 秒。

有没有办法使用 OVH PHP 包装器只发送一个大请求而不是许多小请求?或者也许做多线程?任何可以显着加快请求速度的方法。

【问题讨论】:

    标签: php multithreading api wrapper ovh


    【解决方案1】:

    除非您的 PHP 引擎是使用“ZTS”(Zend 线程安全)构建的并且您安装了 pthread 扩展,否则仅使用官方的 PHP 包装器是无法实现的。如果必须使用纯 PHP,您可以修补包装器以使用 Curl Multi。示例见http://www.phpied.com/simultaneuos-http-requests-in-php-with-curl/

    另一种方法是使用客户端 JS 的混合方法。

    1. PHP 返回一个包含 IP 列表的页面
    2. JS 异步请求 IP 详细信息

    这将有效地触发多个并行请求并改善用户体验。实际上,这就是 OVH 客户界面在幕后所做的。

    【讨论】:

    • 谢谢,这就是我想要做的,但我想找到一种解决方法来用普通的 PHP 来做,我不太了解 JS,但我会尝试。
    猜你喜欢
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 2019-08-22
    相关资源
    最近更新 更多