通过cURL获取web页面及http header信息
cURL是一个强大的HTTP操作库, 可以协助用来操作HTTP相关工作, 减少了代码中使用socket带来的繁琐. 也包含了一个利用URL语法在命令行下工作的文件传输工具curl. 具体可以参考:http://curl.haxx.se/ 这也是cURL开发者的首页.
以下是我的示例, 用来测试HTTP返回数据的.
#include <stdio.h> #include <curl/curl.h> // 页面数据回调函数 static size_t write_callback( void *ptr, size_t size, size_t nmemb, void *stream ) { int len = size * nmemb; int written = len; fwrite(ptr, size, nmemb, (FILE *)stream); //written = fputs( ptr, (FILE *)stream); return written; } // 返回http header回调函数 static size_t header_callback( void *ptr, size_t size, size_t nmemb, void *stream ) { int len = size * nmemb; int written = len; return written; } int main( void ) { CURL *curl; CURLcode res; struct curl_slist *chunk = NULL; curl = curl_easy_init(); if ( curl ) { // 加入http header 附加信息 chunk = curl_slist_append( chunk, "Accept-Language: zh-cn" ); //chunk = curl_slist_append( chunk, "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*" ); chunk = curl_slist_append( chunk, "Accept-Encoding: gzip, deflate" ); chunk = curl_slist_append( chunk, "User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; CIBA)" ); chunk = curl_slist_append( chunk, "Connection: Keep-Alive" ); // 设置调试模式 curl_easy_setopt( curl, CURLOPT_VERBOSE, 1L ); curl_easy_setopt( curl, CURLOPT_URL, "192.168.1.25" ); curl_easy_setopt( curl, CURLOPT_HTTPHEADER, chunk ); // 设置回调函数 curl_easy_setopt( curl, CURLOPT_HEADERFUNCTION, header_callback ); curl_easy_setopt( curl, CURLOPT_WRITEFUNCTION, write_callback ); res = curl_easy_perform( curl ); /* always cleanup */ curl_easy_cleanup( curl ); curl_slist_free_all( chunk ); chunk = NULL; } return 0; }
通过cURL获取web页面及http header信息相关推荐
- linux测试网页装载时间,使用curl测试web页面响应加载速度
curl -o /dev/null -s -w %{http_code}:%{http_connect}:%{content_type}:%{time_namelookup}:%{time_redir ...
- f12获取网页文本_jmeter获取web页面文本内容的两种方式
介绍两种jmeter获取页面文本的方式,以我的博客主页为例,我想获取标题"风城烟雨"这几个字 方式一:使用正则表达式提取器 1.在博客主页空白处鼠标右键查看页面源代码,在源代码中找 ...
- Post/Get方式获取Web页面
using System.Web; /// <summary> /// Post方式请求页面 /// </summary> // ...
- 获取web页面的宽度和高度
Javascript: 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document ...
- php通过使用curl获取http或者https的响应信息的方式
获取远程链接的http地址的状态信息 方法:通过php自带的curl函数 以下为代码片段 function getHttpAndHttpsInfo($url){$this_get = curl_ini ...
- js获取当前页面url网址等信息
使用js获取当前页面的url网址信息. 1.设置或获取整个 URL 为字符串: window.location.href 2.设置或获取与 URL 关联的端口号码: window.location.p ...
- hadoop集群web页面无法显示节点信息的解决方法
hadoop使用web访问50070端口或者8088端口,可以快速查看所有节点的情况,可有些情况下,我们打开这个网页,却发现其datanode是空的 如果出现这种情况,有如下几种可能 一,未关闭虚拟机 ...
- 怎么在WEB页面上读取身份证信息
以腈纶电子的读卡器为例 下载控件IDCardReader.ocx并注册 cd /d "%~dp0" regsvr32 IDCardReader.ocx CLS</P> ...
- VIPS:基于视觉的Web页面分页算法(转载)
VIPS:基于视觉的Web页面分页算法 1.问题的提出 目 前,随着互联网的高速发展,Web已经成为这个世界上最大的信息来源.Web 作为信息技术的载体已成为人们重要的工作.学习.生活.娱乐工具.We ...
- 从零开始构建HTML 5 Web页面
HTML 5是时下Web开发领域炒得火热的一个术语,是的,很多人都看好它,也有很多业内知名公司开始正式使用HTML 5重新构建自己的网站,如YouTube开始使用HTML 5视频,Google 已经弃 ...
最新文章
- Python编写循环的两个建议 | 鹅厂实战
- 主成分分析(Principle Component Analysis)PCA的核心思想是什么?PCA算法的优缺点?增量PCA模型, 随机PCA, 模型、 核化PCA分别是什么?使用时如何选择?
- 网页录音解决方案 FlashWavRecorder For Website API 关键地方已注释
- LVS server 关键点
- volte信令流程详解_VOLTE高清语音通话,呼叫时延低于3秒是如何做到的?
- Visual Studio Code支持JUnit
- 中累计直方图_试验研究中的利器强大的直方图和箱线图
- MPEG中面向沉浸式视觉体验的标准化活动
- C++ Applications
- Android中写文本文件的方法
- 建模步骤_古建设计 | sketchup建模步骤教程(简易入门版)
- 博客迁移至: http://www.cleocn.com
- 【直观详解】信息熵、交叉熵和相对熵
- 经典详细的Struts2教程(附案例源码)
- spread.net 14.2 Crack by Xacker
- 适合于初学者—软路由全探索系列(一):探索 VMware 虚拟机旁路由安装及设置
- 如何在虚拟一个USB设备
- 西门子杯企业命题”钞包分拣装箱系统”演示视频
- 迅睿CMS 程序安装教程
- 计算机211应届毕业生薪资,毕业生“薪酬”最高的4所211大学,985大学的学生只能羡慕!...
热门文章
- CF959A Mahmoud and Ehab and the even-odd game
- zabbix监控nginx的状态
- lscpu 显示cpu的相关信息
- windows server 2016安装weblogic
- java怎么把程序写入持久化_如何将DataFrame持久化到Hive表?
- centos 修改root密码_Liunx 下安装数据库以及修改密码
- c语言操作题和答案,C语言上机操作题及答案.doc
- 四川传媒学院计算机应用技术分数,四川传媒学院历年各专业录取文化最低控制分数线一览表...
- php 类中输出所有属性,PHP基于反射获取一个类中所有属性
- java背包算法_背包算法java版