如何获取cookie给curl中使用
curl的easy接口中提供了5个与cookie有关的option,其中,CURLOPT_COOKIEFILE,CURLOPT_COOKIEJAR,CURLOPT_COOKIELIST都会打开curl的cookie引擎,使得curl在收到httpresponse时解析headerfield中的cookie。
设置CURLOPT_COOKIEFILE会使curl下一次发请求时从指定的文件中读取cookie。
设置CURLOPT_COOKIEJAR会使curl在调用curl_easy_cleanup的时候把cookie保存到指定的文件中。
设置CURLOPT_COOKIELIST会把指定的cookie字符串列表加入easyhandle维护的cookie列表中。
每个cookie字符串要么符合HTTPresponseheader的"Set-Cookie:NAME=VALUE;..."格式, CURLOPT_COOKIE用于设置一个分号分隔的“NAME=VALUE”列表,用于在HTTPrequestheader中设置Cookieheader。
你能找到那个cookie的话,就直接curl www.xxx.com -b /tmp/cookie123 如果你不能找到那个cookie的话,就先curl www.xxx.com -c /tmp/cookie123 保存一下cookie 然后运行最上面那个命令
php之curl设置超时实例
PHP CURL超时设置分两种,毫秒跟秒都是可以的。
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)
;//支持毫秒级别超时设置
phpcurl没有反馈就一直请求吗
curl有超时设置,CURLOPT_TIMEOUT和CURLOPT_CONNECTTIMEOUT,前面那个是用来告诉链接成功的PHP脚本,从服务器接收缓冲完成前需要等待多长时间,后面的是告诉PHP脚本在成功连接服务器前等待多久。你如果不设置那就是php或者nginx Apache这些自己的超时反馈了
还没有评论,来说两句吧...