1

我有一个网站,它有一个可以通过 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 份提交更快吗?

谢谢大家

4

2 回答 2

3

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

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

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

于 2009-06-16T15:34:12.083 回答
1

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

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

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

也见这里:

使用 PHP Curl 库的持久/保持活动 HTTP?

于 2009-06-16T15:30:27.520 回答