【问题标题】:Is this the best way to make an API request using PHP CURL?这是使用 PHP CURL 发出 API 请求的最佳方式吗?
【发布时间】:2010-11-03 09:12:31
【问题描述】:

我有一个网站,它有一个可以通过 http 使用的简单 API。我希望利用 API 一次提交大约 1000-1500 次数据。这是他们的 API:http://api.jum.name/

我已经构建了提交提交的 URL,但现在我想知道发出这些 1000-1500 API GET 请求的最佳方法是什么?这是我正在考虑的 PHP CURL 实现:

$add = 'http://www.mysite.com/3rdparty/API/api.php?fn=post&username=test&password=tester&url=http://google.com&category=21&title=story a&content=content text&tags=Season,news';
curl_setopt ($ch, CURLOPT_URL, "$add");
curl_setopt ($ch, CURLOPT_POST, 0);
curl_setopt ($ch, CURLOPT_COOKIEFILE, 'files/cookie.txt');
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
$postdata = curl_exec ($ch);

每次提交时我都应该关闭 CURL 连接吗?我可以以更好的方式重写上述内容,以使这 1000-1500 份提交更快吗?

谢谢大家

【问题讨论】:

    标签: php http api curl curl-multi


    【解决方案1】:

    默认情况下,PHP 的 curl 会为多次调用 curl_exec() 重用一个连接。

    因此,在这种情况下,您只需使用 curl_init 获得的 curl 句柄,如果 URL 在对 curl_exec() 的调用之间匹配,它将发送“Connection: keep-alive”标头并重用连接。

    不要关闭连接,不要设置 CURLOPT_FORBID_REUSE

    另见此处:

    Persistent/keepalive HTTP with the PHP Curl library?

    【讨论】:

      【解决方案2】:

      如果您可以访问 php 5.2+,我强烈推荐 php 的 curl_multi。

      这允许您并行处理多个 curl 请求,在这种情况下肯定会派上用场。

      相关文档:http://us3.php.net/manual/en/ref.curl.php
      使用示例:http://www.somacon.com/p537.php

      【讨论】:

        猜你喜欢
        • 2022-01-24
        • 2022-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-12
        • 2017-04-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多