问题标签 [curl-multi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 如何知道 curl_multi_exec 中哪个 URL 失败?
我编写了一个类来更轻松地使用多 cURL 请求,当我收到 404 错误或任何其他错误时,我想记录错误。我已经CURLOPT_FAILONERROR
设置为true。
我目前正在使用curl_multi_info_read()
.
这是我的代码:
错误的结果是这样的数组:
那么如何获取发生错误的 URL 呢?这只会给我句柄资源 ID
并提前感谢。
php - PHP cURL 在 10 个请求后设置延迟
我正在使用 PHP 和 cURL 来抓取单个网站页面的 html。通过实验,我发现我的代码仅在我指定 10 个或更少的 URL 时才有效$nodes array
(参见代码示例)。我需要一次抓取大约 100 页并将源代码保存到文件中。这可以使用 cURLS 内置函数之一来完成吗?
这是我目前正在使用的代码:
提前致谢
php - 使用 PHP 解析来自 WSDL 的响应
如果我写错了标题,我很抱歉,我不熟悉 SOAP 响应和它的类型。但我想这是一个 WSDL 响应,至少我是从 WSDL 链接得到的......
我有以下网址 http://somedomain.com/j.svc?wsdl
在我使用 curl_multi 发出请求后,我得到了以下响应。响应缩短为两个结果,因此更易于阅读
响应如下:
有没有机会使用 PHP 解析结果?我进行了很多搜索,包括 StackOverflow 以及我设法找到的内容。
要解析上述响应,我可以使用以下代码:
似乎上面的 PHP 代码部分是正确的。我得到了正确数量的“Journey”,但 $item 本身是空的。
有什么解决办法吗?请不要建议使用 SoapClient 来检索结果。我无法从 curl_multi 移动。我已经有了结果,我需要解析它。先感谢您
php - PHP & curl_multi 和 CURLOPT_FILE = 没有文件内容
当使用 CURLOPT_FILE(将内容发送到文件)并行(使用 curl_mult_exec)处理调用时,当内容很小(不确定确切大小,但在本例中为 100 - 300 字节)时,文件内容始终为 0。
通话结束后,我必须在文件上调用 fclose() 才能写入内容。
使用普通 curl_exec 内容被正确写入。我在 ubuntu 上使用 PHP 5.3.10。
这是一个错误,预期的行为吗?我在网上找不到与此相关的任何内容
php - 为网络爬虫优化 PHP CURL
我正在尝试使用 curl 编写基于 PHP 的爬虫。我有 20,000-30,000 个我必须抓取的 URL 的数据库。每次调用 curl 来获取网页大约需要 4-5 秒。
如何优化这一点并减少获取页面所需的时间?
php - curl_multi_exec - 完成后停止所有调用
成功完成后,是否可以取消 curl_multi 中的所有正在运行的调用?似乎 curl_multi 等到所有进程都完成后才完成脚本,但这可能是我自己的看法。我正在尝试调用具有许多打开连接的单个 URL。URL 将尽可能快地处理请求,当第一个请求返回时,我想关闭剩余的连接并继续调用脚本的其余部分。
php - PHP: How to kill off any pending curl_multi requests in RollingCurl library
I am using a slightly modified version of http://code.google.com/p/rolling-curl/
My question is similar to this: http://code.google.com/p/rolling-curl/issues/detail?id=25
Basically, I am doing a bunch of requests, once I find the one I want, all other pending requests should be terminated from the queue and any running CURL handles should be removed from memory, even if they aren't done downloading yet.
Code here:
Edit: On second thought, there should be 2 functions:
1) Delete any requests in the queue and unset any curl resources from memory without finishing.
2) Delete any requests in queue and while until all curl resources are finished.
I will probably contribute the functions/code/suggestions I get here into the project with credit to author of the selected answer.
php - 获取 cUrl 以抢先发送授权标头以在 PHP 中进行 DIGEST 身份验证
我们有一个 PHP 页面(实际上是一个 WordPress 插件),它通过 DIGEST 身份验证调用 REST API。curl 句柄是基于每个请求创建的,给定授权凭据并成功进行身份验证。
问题:
在后台,Curl 发送了两个请求。第一个以 401 和挑战失败,第二个包含 Authorization 标头并成功(200)
在随后的 API 调用中,cUrl 继续发送两个请求。这似乎效率低下,导致操作持续时间增加了 2 倍的网络延迟。
我们如何使 cURL “先发制人地验证”(例如)未来的请求?
Curl Multi 有这个功能吗?
php - 多个且不断增长的出站 CURL 请求
多出站请求 - 卷曲
这是问题所在,我有几个客户端必须 CURL 出站请求。例如,我目前有 20 个客户,我每分钟向他们每个人发送大约 100~1000 个请求。我也使用 CURL multi 但是它似乎对一次可以发出多少个请求有限制,而且它还取决于整个例程完成的最长 CURL 响应。
例如,我有以下客户:
... 等等
这里的主要问题是我有一个脚本可以为每个客户完成这项工作。说,
... 等等
我将它们分开的原因是因为客户端之间应该有专门的连接,并且它们的延迟彼此不同。一些客户端响应速度更快并且拥有更快的服务器,而一些客户端的服务器速度较慢或需要更多的跃点才能到达。
这是我的问题:有没有办法简化这个过程?因为每次我必须将客户端添加到我的数据库时,我也必须添加
到 cronjobs 列表。是否可以将它放在一个脚本中,以便随着我的客户端列表的增长它不会影响我拥有的出站 CURL 功能的整体性能?
顺便说一句,我正在使用 PHP,CURL。如果有解决方案建议为此使用 PHP 以外的其他技术,Linux 队列管理器...等,欢迎您提出建议。
谢谢!
php - curl_multi_exec() 是阻塞调用吗?
只是好奇curl_multi_exec()
PHP中的调用是阻塞调用还是非阻塞调用。