很多时候做了超时设置,但还是无效,上网查了很多文章,大致有了解决方案DNS解析超时问题:
只设置了请求超时`CURLOPT_TIMEOUT`选项,时间为3秒,如下:
curl_setopt($curl, CURLOPT_TIMEOUT, 3); // 设置超时限制防止死循环
发现curl执行时间是12秒多,又追加了连接超时`CURLOPT_CONNECTTIMEOUT`为2秒,如下:
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2); // 设置连接超时限制防止死循环
没有用,curl执行时间仍然是12秒,同样的curl_error [Resolving timed out after 3612 milliseconds]
后面终于找到了有用的文章,试着根据里边讲到的去指定DNS解析规范为IPV4,完美解决,设置如下:
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );// 解决DNS解析不受超时设置控制curl_setopt($curl, CURLOPT_TIMEOUT, 3); // 设置超时限制防止死循环curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2); // 设置连接超时限制防止死循环
2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务 |