curl 使用简介
Libcurl使用介绍:
四个关键函数:
1. curl_easy_init() 初始化curl环境,新建curl对象,返回对象句柄,使用举例: CURL *handler = curl_easy_init();
2. curl_easy_setopt() 各种设置, 包括URL设置等,使用举例:
curl_easy_setopt(handler, CURLOPT_URL, “www.baidu.com”),其中中间的参数是设置的类别,比较重要,后面会列举说明.
3. curl_easy_perform() 开始执行下载操作, 若下载失败会返回错误码.例如: CURLcode code = curl_easy_perform(handler)
4. curl_easy_getinfo() 得到各种下载信息, 包括下载文件名,文件大小等,此操作必须放在curl_easy_perform()之后执行才能得到正确的值.使用举例: long resultCode;
curl_easy_getinfo(handler, CURLINFO_RESPONSE_CODE, &resultCode);
中间的参数也在后面列举
必要的参数说明
curl_easy_setopt()参数:
CURLOPT_URL 设置目标URL地址
CURLOPT_HEADER 是否包含http头,包含则设置为一个非0值
CURLOPT_NOBODY 如果你不需要http的body部分(除header头以外其他部分),设置此项为一个非0值
CURLOPT_TIMETOU 设置一个超时时间,若超过此时间perform会立即返回,返回码为下载失败对应错误码,单位秒.注意此时间为从调用perform开始后的总的下载时间,举例curl_easy_setopt(handler, CURLOPT_TIMEOUT, 30)
设置超时时间为30秒,即下载必须在30秒内完成,否则返回下载失败
CURLOPT_CONNECTIONTIMEOUT 连接超时时间,单位秒.这个参数在easy curl下载中基本没什么实用价值.
CURLOPT_RESUME_FROM_LARGE 从什么位置开始下载,断点续传主要使用此参数进行配置,使用非常简单,只需要传递一个字节偏移量即可,例如
curl_easy_setopt(handler, CURLOPT_ RESUME_FROM, 0),表示从第0个字节开始下载, curl_easy_setopt(handler, CURLOPT_ RESUME_FROM, 500),从第500个字节开始下载
CURLOPT_RANGE 下载指定字节的文件块,参数对应的值格式为X-Y,例如curl_easy_setopt(handler, CURLOPT_ RESUME_FROM, “500-999”),下载从500个字节开始到999字节结束的文件块
CURLOPT_NOPROGRESS 如果不需要下载进度设置此项为一个非0值
CURLOPT_PROGRESSFUNCTION 设置回调的进度函数,设置后,会不断的调用进度函数,并传递参数总大小和已下载大小给该函数
CURLOPT_PROGRESSDATA 设置传递给回调的进度函数的一个参数,类型为字符串类型,后面jwisp会举例说明
curl_easy_getinfo() 部分参数说明
CURLINFO_RESPONSE_CODE 得到perform的执行结果码
CURLINFO_CONTENT_LENGTH_DOWNLOAD 得到下载文件大小
curl 使用简介的更多相关文章
- curl 命令简介
curl命令用于在命令行中发送HTTP请求: curl -i -H 'content-type: application/json' -X POST -d '{"name":&qu ...
- curl命令简介
curl 文件传输工具 参数: -c --cokie-jar: 将cookie写入到文件 -b --cokie: 从文件中读取cookie -C --continue-at: 断点续传 -d --da ...
- PHP curl是什么
PHP curl是什么 一.总结 一句话总结:PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯. libcurl库 允许你与各种的 ...
- 《CURL技术知识教程》系列分享专栏
<CURL技术知识教程>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/201737.html 文章 PHP采集相关教程之一 CUR ...
- 整理Linux查看系统日志的一些经常使用命令
整理Linux查看系统日志的一些经常使用命令 last -a 把从何处登入系统的主机名称或ip地址,显示在最后一行. -d 指定记录文件.指定记录文件.将IP地址转换成主机名称. -f <记录文 ...
- Python接口测试实战1(下)- 接口测试工具的使用
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- curl简介、安装及使用
目录 curl简介 curl安装 curl使用 curl简介 curl是Linux下一个强大的文件传输工具,它利用URL语法在命令行方式下工作,支持文件上传和下载. curl安装 Ubuntu系统键入 ...
- curl 基本使用简介
curl是Linux下一个非常著名的下载库,通过这个库,可以很简单的实现文件的下载等操作.看一个简单的例子: #include <curl/curl.h> #include <std ...
- CURL 简介【转载】
转自http://hancang2010.blog.163.com/blog/static/1824602612010711104018261/ 0) 头信息 curl命令查询服务器头信息 curl ...
随机推荐
- ViewState压缩
/// <summary> ///CompressViewState 的摘要说明 /// </summary> public class CompressViewState:S ...
- object-fit: 炒鸡方便的图片居中方法
今天在项目中遇到图片居中的问题,嗯,之前也有写过解决这个问题的文章,有n种方法.不过今天要说一个新的方案:object-fit ,嗯,这个才是真的方便的方案啊. 先看预览: object-fit 只能 ...
- 【BZOJ】1015: [JSOI2008]星球大战starwar
1015: [JSOI2008]星球大战starwar 题意:一个点数为N(1<= 40w),边数为M(1<=20w)的图,总共删除k个节点,问开始以及每次删除一个节点之后图的连通块数? ...
- Elasticsearch基础概念理解
熟悉ES中的几个关键概念: 节点(Node):一个elasticsearch运行的实例,其实就是一个java进程.一般情况下,一台机器运行在一台机器上. 集群(Cluster): 好几个有相同集群名称 ...
- 从clone()谈protected
看到Object的clone()是protected的,然后看到<java2认证考试指南>上描述:一个对象只能请求其他对象的克隆,后者的类与被克隆对象属于同一类,或是被克隆对象的子类. e ...
- Provider Communication with Apple Push Notification Service
This chapter describes the interfaces that providers use for communication with Apple Push Notificat ...
- SQL分组查询GroupBy
一.分组查询1.使用group by进行分组查询在使用group by关键字时,在select列表中可以指定的项目是有限制的,select语句中仅许以下几项:〉被分组的列〉为每个分组返回一个值得表达式 ...
- 转--Server “**” has shut down the connection prematurely一例分析
近几天在性能测试过程中,发现loadrunner Controller经常报 Server “**” has shut down the connection prematurely .概率很高,现象 ...
- push 栈顶sp=sp-2 可以把立着的栈,向左侧倒下,那么形态就和反汇编时,内存的形态是一样的。小偏移的字节在前, 大的偏移字节在后
push 栈顶sp=sp-2 可以把立着的栈,向左侧倒下,那么形态就和反汇编时,内存的形态是一样的.小偏移的字节在前, 大的偏移字节在后. 1 2 3 4 5 1 2 3 4 5
- Arrays.sort 与 Collections.sort
代码如下: package com.wangzhu.arrays; import java.util.Arrays; import java.util.Collections; public clas ...