文档章节

curl 设置超时

yangakw
 yangakw
发布于 2016/11/09 17:18
字数 449
阅读 16
收藏 0
点赞 0
评论 0
一般我们访问HTTP方式很多,主要是:curl,socket,file_get_contents()等方法。 如果碰到对方服务器一直没有响应的时候,我们就悲剧了,很容易把整个服务器搞死,所以在访问http的时候也需要考虑超时的问题。 [ CURL 访问HTTP] CURL 是我们常用的一种比较靠谱的访问HTTP协议接口的lib库,性能高,还有一些并发支持的功能等。 CURL: curl_setopt($ch,opt)可以设置一些超时的设置,主要包括: *(重要)CURLOPT_TIMEOUT设置cURL允许执行的最长秒数。 *(重要)CURLOPT_TIMEOUT_MS设置cURL允许执行的最长毫秒数。(在cURL7.16.2中被加入。从PHP5.2.3起可使用。) CURLOPT_CONNECTTIMEOUT在发起连接前等待的时间,如果设置为0,则无限等待。 CURLOPT_CONNECTTIMEOUT_MS尝试连接等待的时间,以毫秒为单位。如果设置为0,则无限等待。在cURL7.16.2中被加入。从PHP5.2.3开始可用。 CURLOPT_DNS_CACHE_TIMEOUT设置在内存中保存DNS信息的时间,默认为120秒。 curl普通秒级超时: $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_TIMEOUT,60);//只需要设置一个秒的数量就可以 curl_setopt($ch,CURLOPT_HTTPHEADER,$headers); curl_setopt($ch,CURLOPT_USERAGENT,$defined_vars['HTTP_USER_AGENT']); curl普通秒级超时使用: curl_setopt($ch,CURLOPT_TIMEOUT,60); curl如果需要进行毫秒超时,需要增加: curl_easy_setopt(curl,CURLOPT_NOSIGNAL,1L); 或者是: curl_setopt($ch,CURLOPT_NOSIGNAL,true);是可以支持毫秒级别超时设置的 curl一个毫秒级超时的例子:
<?php if(!isset($_GET['foo'])){ //Client $ch=curl_init('http://example.com/'); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); curl_setopt($ch,CURLOPT_NOSIGNAL,1);//注意,毫秒超时一定要设置这个 curl_setopt($ch,CURLOPT_TIMEOUT_MS,200);//超时毫秒,cURL7.16.2中被加入。从PHP5.2.3起可使用 $data=curl_exec($ch); $curl_errno=curl_errno($ch); $curl_error=curl_error($ch); curl_close($ch); if($curl_errno>0){ echo"cURLError($curl_errno):$curl_errorn"; }else{ echo"Datareceived:$datan"; } }else{ //Server sleep(10); echo"Done."; } ?>

本文转载自:http://www.yangakw.cn/2016/11/curl-%e8%ae%be%e7%bd%ae%e8%b6%85%e6%97%b6/

共有 人打赏支持
yangakw
粉丝 0
博文 8
码字总数 96428
作品 0
青岛
后端工程师
C语言下的CURL超时时间设置失效,有大牛能解惑一下吗、

程序内有使用curl的模块,为了保证程序的完备性,用iptables禁掉了目的ip的通讯,尝试一下超时机制是否正确执行。 但是发现curl的超时时间失效了,我自己的超时时间设定为2s,但是无论如何,...

动物园铲屎官
05/10
0
0
curl命令的超时时间

转载自:http://blog.chinaunix.net/uid-20788470-id-1841681.html 今天在一台服务器上突然看到一个curl进程已经运行了28天还木结束, 有点奇怪! 我在使用curl的时候也设置了超时时间, ...

kuSorZ
2017/10/24
0
0
好用的打码平台推荐

推荐平台: 选择的原因是 客服到位,有专业技术解决问题,api文档以及Demo详尽。测试了几个没有问题 官方demo

石头记
2016/06/28
35
0
php下使用CURL设置超时的问题

php下使用CURL设置超时的问题 问题描述: 考虑以下使用php进行 curl调用的场景: $ch = curl_init(); //... $limitTime = $SERVER['REQUESTTIME']; //误用当前时间当超时时间 curlsetopt($th...

暗夜在火星
2014/06/18
0
0
问一个关于curl超时的问题

场景: 我的程序通过curl获取网站上的资源,如果网站上有缓存内容就访问缓存内容,如果没有,我的程序会让网站获取内容,然后我的程序获取网站获取到的内容,返回回来网站获取内容后会缓存,我...

hphper
2013/11/06
416
1
curl连接时间设置

CURL访问HTTP: CURL 是常用的访问HTTP协议接口的lib库,性能高,还有一些并发支持的功能等。 curl_setopt($ch, opt) 可以设置一些超时的设置,主要包括: (重要) CURLOPT_TIMEOUT 设置cURL允...

colin_86
2015/10/23
3
0
Curl的毫秒超时的一个”Bug”

作者: Laruence( ) 本文地址: http://www.laruence.com/2014/01/21/2939.html 最近我们的服务在升级php使用的libcurl, 期望新版本的libcurl支持毫秒级的超时, 从而可以更加精细的控制后端的接...

BearCatYN
2015/04/29
0
0
curl https请求

function vpost($url,$data){ // 模拟提交数据函数 $curl = curl_init(); // 启动一个CURL会话 curlsetopt($curl, CURLOPTURL, $url); // 要访问的地址 curlsetopt($curl, CURLOPTSSL_VERIF......

varyshare
2016/08/09
34
0
curl的设置超时时间小于1000ms时无效

curl版本>7.16.2,支持CURLOPTTIMEOUTMS,请求响应时间很小,小于5ms,设置CURLOPTTIMEOUTMS为120ms,不能正确得到响应。要做一个实时竞价的东西,往外发几个百请求,目前用的是curlmultiex...

Zone
2011/04/08
1K
0
PHP CURL HTTPS POST

function vpost($url,$data){ // 模拟提交数据函数 $curl = curl_init(); // 启动一个CURL会话 curlsetopt($curl, CURLOPTURL, $url); // 要访问的地址 curlsetopt($curl, CURLOPTSSL_VERIF......

mac_zhao
2014/11/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

大数据教程(2.13):keepalived+nginx(多主多活)高可用集群搭建教程【自动化脚本】

上一章节博主为大家介绍了目前大型互联网项目的keepalived+nginx(主备)高可用系统架构体系,相信大家应该看了博主的文章对keepalived/nginx技术已经有一定的了解,在本节博主将为大家分享k...

em_aaron
5分钟前
0
0
Git 2.18版本发布:支持Git协议v2,提升性能

在最新的官方 Git 客户端正式版2.18中添加了对 Git wire 协议 v2 的支持,并引入了一些性能与 UI 改进的新特性。在 Git 的核心团队成员 Brandon Williams 公开宣布这一消息前几周,Git 协议 ...

六库科技
9分钟前
0
0
Java8新特性之接口

在JDK8以前,我们定义接口类中,方法都是抽象的,并且不能存在静态方法。所有的方法命名规则基本上都是 public [返回类型] [方法名](参数params) throws [异常类型] {}。 JDK8为接口的定义带...

developlee的潇洒人生
47分钟前
0
0
aop + annotation 实现统一日志记录

aop + annotation 实现统一日志记录 在开发中,我们可能需要记录异常日志。由于异常比较分散,每个 service 方法都可能发生异常,如果我们都去做处理,会出现很多重复编码,也不好维护。这种...

长安一梦
58分钟前
2
0
将博客搬至CSDN

AHUSKY
今天
1
0
Python web框架Django学习(1)

1.Django简介 (1)Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。Django是一个开放源代码的Web应用框架,由Python写成。 (2...

十年磨一剑3344
今天
0
0
Databook-数据之书

Databook-数据之书 用于数据分析的Jupyter Notebooks。 不需购买服务器,快速开始自己的数据分析过程。 源码:https://github.com/openthings/databook 作者:openthings,https://github.co...

openthings
今天
7
0
Python PIPEs

https://www.python-course.eu/pipes.php https://www.tutorialspoint.com/python/os_pipe.htm

zungyiu
今天
1
0
gRPC学习笔记

gRPC编程流程 1. proto文件定义 proto文件用于定义需要通过gRPC生成的接口,可以理解为接口定义文档 2. 通过构建工具生成服务基类代码-Maven或Gradle 3. 服务端开发 服务端实现类须实现通过构...

OSC_fly
今天
0
0
Docker Mac (三) Dockerfile 及命令

Dockerfile 最近学习docker的时候,遇到一件怪事,关于docker镜像可能会被破坏,还不知道它会有此措施 所以需要了解构建Dockerfile的正确方法 Dockerfile是由一系列命令和参数构成的脚本,这些命...

___大侠
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部