如何在curl中curl 设置cookie自定义的HTTP头

二次元同好交流新大陆
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
决心、恒心、信心、平常心
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(7556)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'PHP CURL CURLOPT_HTTPHEADER设置HOST主机头进行访问',
blogAbstract:'来源:.cn/php-curl-curlopt_httpheader%E8%AE%BE%E7%BD%AEhost为了安全,我们的web服务主机往往不能上网。维护的时候,也是通过跳板机,ssh登录后去操作。\n有时候我们的程序需要访问外网。比如需要调用外网其他程序的某个接口。这下该怎么办呢?\n我们可以通过PHP的CURL函数的CURLOPT_HTTPHEADER来配置设置host访问。\n在开发中,我遇到这样一个例子。\n有一个活动程序,需要调用qzone那边的一个接口。\n如下代码示例:\n$host = array(\"Host: act.\");\n$data = \'user=xxx&qq=x',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:0,
permalink:'blog/static/',
commentCount:1,
mainCommentCount:1,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'决心、恒心、信心、平常心',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}使用http 在Linux系统下使用curl自定义HTTP头的方法 - 小小知识站
使用http 在Linux系统下使用curl自定义HTTP头的方法
描述:...多的传输协议,尤其是HTTP/HTTPS以及其他诸如FTP/FTPS, RTSP, POP3/POP3S, SCP, IMAP/IMAPS协议等。当你使用curl向一个URL发送HTTP请求的时候,它会使用一个默认只包含必要的头部字段(如:User-Agent, Host, and Accept)的HTTP头。在一些个例中,或许你想要在一个HTTP请求中覆盖掉默认的HTTP头或者添加一个新的自定义头部字段。例如,你或许想要重写HOST字段来测试一个负载均衡,或者通过重写User-...
说明个_load压力测试工具,_load,类似的工具还有webbench、ab、Siege。&&&&1、下载官方网站:: acme./software/_load/代码如下:&&&&2、安装代码如下:执行完make,会在当前目录生成一个_load二进制文件。&&&&3、使用方法代码如下:One start specifier, either -parallel or -rate, is required.One end specifier, either -fetches or -seconds, is required.主要参数说明:-parallel 简写-p :含义是并发的用户进程数。-rate 简写-r :含义是每秒的访问频率-fetches 简写-f :含义是总计的访问次数-seconds简写-s :含义是总计的访问时间选择参数时,-parallel和-rate选其中一个,-fetches和-seconds选其中一个。示例:_load -parallel 50 -s 10 urls.txt这段命令行是同时使用50个进程,随机访问urls.txt中的网址列表,总共访问10秒。_load -rate 50 -f 5000 urls.txt每秒请求50次,总共请求5000次停止。4、基本的返回值&&&&&&(1).49 fetches, 2 max parallel, 289884 bytes, in&&&&10.0148 seconds说明在上面的测试中运行了49个请求,最大的并发进程数是2,总计传输的数据是289884bytes,运行的时间是10.0148秒&&(2).5916 mean bytes/connection说明每一连接平均传输的数据量=5916&&(3).4.89274 fetches/sec, 28945.5 bytes/sec说明每秒的响应请求为4.89274,每秒传递的数据为28945.5 bytes/sec&&(4).msecs/connect: 28.8932 mean, 44.243 max, 24.488 min说明每连接的平均响应时间是28.8932 msecs,最大的响应时间44.243 msecs,最小的响应时间24.488 msecs&&(5).msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min&&(6). response codes: code 200 -- 49说明打开响应页面的类型,如果403的类型过多,那可能要注意是否系统遇到了瓶颈。特殊说明:这里,我们一般会关注到的指标是fetches/sec、msecs/connect他们分别对应的常用性能指标参数Qpt-每秒响应用户数和response time,每连接响应用户时间。测试的结果主要也是看这两个值。当然仅有这两个指标并不能完成对性能的分析,我们还需要对服务器的cpu、men进行分析,才能得出结论 5、如果你需要测试s,你必须将 Makefile中代码如下:由于使用到openssl,你必须安装openssl和相应的开发环境代码如下:所以上面红色字体部分必须修改
分享给小伙伴们:
主题:在Linux系统下使用curl自定义HTTP头的方法
描述:...多的传输协议,尤其是HTTP/HTTPS以及其他诸如FTP/FTPS, RTSP, POP3/POP3S, SCP, IMAP/IMAPS协议等。当你使用curl向一个URL发送HTTP请求的时候,它会使用一个默认只包含必要的头部字段(如:User-Agent, Host, and Accept)的HTTP头。在一些个例中,或许你想要在一个HTTP请求中覆盖掉默认的HTTP头或者添加一个新的自定义头部字段。例如,你或许想要重写HOST字段来测试一个负载均衡,或者通过重写User-...
主题:在Linux系统下使用curl自定义HTTP头的方法
描述:...多的传输协议,尤其是HTTP/HTTPS以及其他诸如FTP/FTPS, RTSP, POP3/POP3S, SCP, IMAP/IMAPS协议等。当你使用curl向一个URL发送HTTP请求的时候,它会使用一个默认只包含必要的头部字段(如:User-Agent, Host, and Accept)的HTTP头。在一些个例中,或许你想要在一个HTTP请求中覆盖掉默认的HTTP头或者添加一个新的自定义头部字段。例如,你或许想要重写&HOST&字段来测试一个负载均衡,或...
主题:Network Monitor使用教程
描述:Network Monitor主要用途抓取和解析各种协议的网络包过滤网络报文解析ETW Trace (etl格式文件)使用方法抓包通过管理员权限打开,在Select Networks中选择需要监测的网卡(通常情况下默认选项即可)选择New Capture新建抓包选择Start按钮开始抓包Pause和Stop按钮分别用来暂停或停止抓包。过滤器可以在Display Filter中使用各种形式的过滤语句来过滤抓包,例如Http - 过滤所有的http帧Tcp - 过滤所有...
主题:Linux系统下使用HAProxy配置HTTP负载均衡系统的方法
描述:...在大多数情况下,一套合适的负载均衡解决方案有望满足这个要求。今天我将为各位介绍如何使用HAProxy搭建一套HTTP负载均衡系统。HTTP负载均衡简介HTTP负载均衡是一种网络解决方案,负责在托管相同应用内容的几台服务器之间分配进入的HTTP或HTTPS流量。由于在多台可用服务器之间均衡了应用请求,负载均衡系统就能防止任何应用服务器变成单一故障点,因而提高了整体的应用...
主题:HTTP协议是什么?HTTP协议认证介绍
描述:什么是基本认证桌面应用程序也通过协议跟Web服务器交互, 桌面应用程序一般不会使用cookie, 而是把
用户名+冒号+密码用BASE64算法加密后的字符串放在 request 中的header Authorization中发送给服务端,
这种方式叫基本认证(Basic Authentication)当浏览器访问使用基本认证的网站的时候, 浏览器会提示你输入用户名和密码,如下图假如用户名密码错误的话, 服务器会返回401 如下图基本...
主题:Linux系统下配置HTTP负载均衡系统以扛流量增加
描述:...在大多数情况下,一套合适的负载均衡解决方案有望满足这个要求。今天我将为各位介绍如何使用HAProxy搭建一套HTTP负载均衡系统。HTTP负载均衡简介HTTP负载均衡是一种网络解决方案,负责在托管相同应用内容的几台服务器之间分配进入的HTTP或HTTPS流量。由于在多台可用服务器之间均衡了应用请求,负载均衡系统就能防止任何应用服务器变成单一故障点,因而提高了整体的应用...
07-2807-2807-2807-2807-28
09-1509-1309-1809-0308-15
也许你感兴趣最近开发的游戏之中需要用到大量的客户端与服务端交互的 东西,开始参考大量的技术文章,感觉是五花八门,眼花缭乱。到后面,真正感受到,学习一门技术,还是需要从它最开始的东西开始学起,要不就是一头雾水,这种感觉实在是太难受了。而且建议要学习技术的人,直接去官网学习,反而是最高效的途径。
&&& curl的官网地址是:
好的,现在开始介绍下curl这个强大的工具。
&& curl是一个基于命令行的应用工具,提供利用URL标准进行文件传输的功能。目前已经支持非常多的流行的互联网协议,如:FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE等。curl支持SSL认证,HTTP POST/PUT,FTP上传,HTTP上传、代理、cookies、用户+密码认证、文件续传、代理管道等一系列强大功能。curl是用C语言写的,但是绑定了很多开发语言。大体上可以把curl分成命令行工具和libcurl库两个部分,命令行工具可以直接输入指令完成相应功能,libcurl则是一个客户端URL传输库,是线程安全且兼容IPv6,可以非常方便地用来做相关开发。
&&&&&& &curl可以使用命令行直接操作,也可以使用libcurl库进行上层应用的开发。我们这里主要讲解libcurl库的使用。使用环境是mac系统,xcode编译环境和cocos2d-X游戏引擎。&&& &&&&& &libcurl提供了一组C语言API函数直接调用。首先需要提到的两个函数就是curl_global_init()和curl_global_cleanup()。libcurl要用到一系列的全局常量,curl_global_init()函数就是初始化这些变量,并分配一些全局资源;curl_global_cleanup()则负责释放这些资源。因此一般情况下,在调用libcurl函数之前,先用curl_global_init(CURL_GLOBAL_ALL)做初始化,在调用完毕后,用curl_global_cleanup()退出。需要注意的是,这些全局变量和资源并不是线程安全的,因此,在多线程应用的环境中,最好不要多次调用curl_global_init()和curl_global_cleanup(),调用其他函数并不会改变这些全局变量和资源。&&& libcurl支持3种不同的接口调用方式,分别是"easy"、"multi"和"share"模式。libcurl-easy是一组同步接口,函数都是curl_easy_*形式,这种模式调用curl_easy_perform()函数进行URL数据传输,直到传输完成函数才返回;libcurl-multi是一组异步接口,函数都是curl_multi_*形式,调用curl_multi_perform()函数进行传输,但是每次调用只传一片数据,我们可以用select()函数控制多个下载任务进行同步下载,来实现在一个线程中同时下载多个文件;libcurl-share允许在多线程中操作共享数据。下面以libcurl-easy为例讲一下libcurl的函数。&& &&& 1、CURL *curl_easy_init()&&& 此函数需要最先被调用,返回CRUL easy句柄;后续其他函数调用都要用到这个句柄。如果没有调用curl_global_init(),该函数自动调用,但是考虑到线程安全的问题,最好自己调用curl_global_init()。
&&& 2、CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter)&&& 所有参数和选项设置都是通过这个函数完成的,它告诉libcurl怎样去进行传输。参数handle即为curl_easy_init()返回的句柄,后面根据option的类型,设置相应的parameter值,该函数每次调用只能设置一个选项。具体的option讲解在这篇博文中有较全面的介绍:&& &&& CURLOPT_URL&&& 字符串类型,该选项设置要处理的URL地址,该选项是进行curl_easy_perform之前唯一必须要设置的选项。&& &&& CURLOPT_COOKIE&&& 字符串类型,设置http头中的cookie信息。&& &&& CURLOPT_COOKIEFILE&&& 字符串类型,同CURLOPT_COOKIE,不过cookie信息从文件中读取。&& &&& CURLOPT_FOLLOWLOCATION&&& 布尔值类型,该参数设置为非零值表示follow服务器返回的重定向信息。&& &&& CURLOPT_POSTFIELDS&&& 字符串类型,提交http的post操作字符串数据。&& &&& CURLOPT_TIMEOUT&&& long数值类型,设置函数执行的最长时间,时间单位为s。&& &&& CURLOPT_CONNECTTIMEOUT&&& long数值类型,设置连接服务器最长时间,时间单位为s;当置为0时表示无限长。&& &&& CURLOPT_MAX_RECV_SPEED_LARGE&&& curl_off_t类型数据,指定下载过程中最大速度,单位bytes/s。&& &&& CURLOPT_HEADERFUNCTION&&& 函数指针类型,该选项设置一个处理接收到的header数据的回调函数,函数原型为:&&& size_t function( void *ptr, size_t size, size_t nmemb, void *stream);&&& 其中,ptr指向接收到的header头数据,数据大小为size*nmemb,stream指向调用CURLOPT_WRITEHEADER选项设置的参数。该回调函数应返回实际处理的数据量大小,或者出错返回-1。
&&& CURLOPT_WRITEFUNCTION&&& 函数指针类型,该选项设置一个处理接收到的下载数据的回调函数,函数原型为:&&& size_t function( void *ptr, size_t size, size_t nmemb, void *stream);&&& 其中,ptr指向接收到的数据,数据大小为size*nmemb,stream指向调用CURLOPT_WRITEDATA选项设置的参数。&&& 如果函数指针置为NULL,则会调用默认的函数,将数据写入到由CURLOPT_WRITEDATA指定的FILE*中。&& &&& CURLOPT_HTTPHEADER&&& curl_slist结构体类型,该选项自定义请求头信息。&& &&& CURLOPT_NOPROGRESS&&& 布尔值类型,设置该值为非零值关闭PHP为CRUL传输显示的进度条。&& &&& 3、void curl_easy_reset(CURL *handle )&&& 重新初始化CURL句柄的选项设置。&& &&& 4、CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ... )&&& 查询CRUL会话的内部信息,具体说明请参考curl自带文档。&& &&& 5、void curl_easy_cleanup(CURL * handle )&&& 该函数与curl_easy_init函数成对出现,handle即为调用curl_easy_init返回的句柄。该函数在CURL会话结束退出时调用,之后handle无效。
阅读(...) 评论()}

我要回帖

更多关于 curl超时设置 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信