【问题标题】:cURL - How do i disable it requesting a responsecURL - 我如何禁用它以请求响应
【发布时间】:2010-12-14 19:22:12
【问题描述】:

我使用 cURL 脚本将参数发布到我的其他站点上的页面作为客户端的更新,我的问题是我的 curl 脚本在等待响应一个站点之前停止,然后继续到其他站点,如果一页超时需要很长时间才能进入下一页,我尝试使用 curl_setopt 将 connectiontimeout 和 timeout 设置为 0,但这在我的问题的响应方面不起作用。那么开始吧,我如何停止 curl 等待目标服务器的响应,然后再继续下一个?

谢谢, 约翰

【问题讨论】:

  • 好吧,将连接超时设置为 0 意味着让他们无限期地等待......
  • 哦,谢谢,你建议我做什么?
  • 你对你的 cURL 请求做了什么?这是一个可以更好地由计划任务处理的进程,以防止它在等待响应时阻止用户浏览?
  • 嗯,我不太明白你的问题,但是如果目标 Web 服务器速度很慢或者域已关闭,并且一旦操作完成,就没有响应,所以我不会真的需要等一个。

标签: php curl timeout response


【解决方案1】:

首先,您应该检查响应,以了解一切是否正常或再试一次。解决方案可能是一次运行多个 curl 请求:curl_multi_init,如果你真的不想等待,设置小超时(但不要太小,给一些时间来获取 DNS 记录和发送请求,尝试使用CURLOPT_CONNECTTIMEOUT_MS) 并将CURLOPT_NOBODY 设置为true(或将CURLOPT_CUSTOMREQUEST 设置为HEAD),因此 curl 不会等待获得完整的响应。

【讨论】:

  • 嗨,感谢您的回答。你能给我一个如何设置选项的例子吗,因为我是新的 cURL,每次我尝试都会出错:S
  • 嗨,我只是在阅读 curl_multi_init,该方法的问题是我实际上不知道我有多少客户,我将所有客户连同那里的网站一起存储在 MySQL 数据库中,然后拉到那里查询中的信息并相应地执行,所以我可以创建一定数量的 curl inits,它必须是动态的。
猜你喜欢
  • 2020-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多