位置: 编程技术 - 正文

Curl 传输选项Option-详解(curl发送formdata)

编辑:rootadmin

推荐整理分享Curl 传输选项Option-详解(curl发送formdata),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:curlput上传文件,curl命令上传文件到服务器,curl传输文件,curl命令上传文件到服务器,curl传输文件,curl post 传参数,curl传递参数,curl传输文件,内容如对您有帮助,希望把文章链接给更多的朋友!

Curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win、Win下的移植版本。

CURL函数列表:

函数描述curl_close()关闭一个cURL会话。curl_copy_handle()复制一个cURL句柄和它的所有选项。curl_errno()返回最后一次的错误号。curl_error()返回一个保护当前会话最近一次错误的字符串。curl_escape()返回转义字符串,对给定的字符串进行URL编码。curl_exec()执行一个cURL会话。curl_file_create()创建一个 CURLFile 对象。curl_getinfo()获取一个cURL连接资源句柄的信息。curl_init()初始化一个cURL会话。curl_multi_add_handle()向curl批处理会话中添加单独的curl句柄。curl_multi_close()关闭一组cURL句柄。curl_multi_exec()运行当前 cURL 句柄的子连接。curl_multi_getcontent()如果设置了CURLOPT_RETURNTRANSFER,则返回获取的输出的文本流。curl_multi_info_read()获取当前解析的cURL的相关传输信息。curl_multi_init()返回一个新cURL批处理句柄。curl_multi_remove_handle()移除curl批处理句柄资源中的某个句柄资源。curl_multi_select()等待所有cURL批处理中的活动连接。curl_multi_setopt()设置一个批处理cURL传输选项。curl_multi_strerror()返回描述错误码的字符串文本。curl_pause()暂停及恢复连接。curl_reset()重置libcurl的会话句柄的所有选项。curl_setopt_array()为cURL传输会话批量设置选项。curl_setopt()设置一个cURL传输选项。curl_share_close()关闭cURL共享句柄。curl_share_init()初始化cURL共享句柄。curl_share_setopt()设置一个共享句柄的cURL传输选项。curl_strerror()返回错误代码的字符串描述。curl_unescape()解码URL编码后的字符串。curl_version()获取cURL版本信息。

CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter);

说明:此函数用来告诉 libcurl 执行什么样的动作。该函数有 3 个参数(该函数的可设置选项非常之多):

第 1 个参数 handle 是由 curl_easy_init() 返回的句柄;

Curl 传输选项Option-详解(curl发送formdata)

第 2 个参数是可以设置的选项(CURLoption);

第 3 个参数是与第 2 个选项相关联的参数,这个参数可以是 long 型,也可以是一个函数指针(function pointer),还可以是一个对象的指针 (object pointer),或者是一个 curl_off_t 类型,这些参数类型必须由选项&#;(CURLoption)来确定。

网络选项(NETWORK OPTIONS):1. CURLOPT_URL这个选项后面接实际要处理的 URL ,这个 URL 是一个以 '' 结尾的字符串或参数指针(关于这个参数的简单示例见: URL 参数不写上协议头(如 " 或者 " 等等 ),那么函数会自己进行猜解所给的主机上用的是哪一种服务协议。假如你给的这个地址是一个不被 支持的协议,那么在其后执行 curl_easy_perform() 函数或 curl_multi_perform() 函数时, libcurl 将返回错误(CURLE_UNSUPPORTED_PROTOCOL)。这个选项是唯一一个必须在 curl_easy_perform() 调用之前就要设置的选项。2. CURLOPT_POSTFIELDSIZE该选项要求第 3 个参数 parameter 是一个 void * 指针,它指向一个向 HTTP 服务器 POST 出去的一段数据,这段数据要根据服务器的具体要求填写。该选项用法参考示例: CURLOPT_WRITEFUNCTION使用该选项时,要求第 3 个参数中的回调函数必须是下面的函数原型:

在启动会话时,一旦检测到有需要接收的数据时,回调函数被调用。ptr 所指向的数据大小由 size 和 nmemb 的乘积获得。函数最后需要返回接收数据的大小。如果不使用该函数,那么接收到的数据会直接打印到终端;使用该函数,那么接收到的数据保存在 ptr 所执向的区域,可以利用此来保存接收下来的数据。4. CURLOPT_USERAGENT该选项要求传递一个以 '' 结尾的字符串指针,这个字符串用来在向服务器请求时发送 HTTP 头部中的 User-Agent 信息,有些服务器是需要检测这个信息的,如果没有设置 User-Agent,那么服务器拒绝请求。设置后,可以骗过服务器对此的检查。5. CURLOPT_WRITEDATA使用该选项时,第 3 个参数作为用户数据的指针而传递到使用 CURLOPT_WRITEFUNCTION 选项时指定的回调函数中(第 4 个参数)。如果不想用回调函数而保存数据,那么可以使用 CURLOPT_WRITEDATA 选项,使用该选项时,函数的第 3 个参数必须是个 FILE 指针,函数会将接收到的数据自动的写到这个 FILE 指针所指向的文件流中。6. CURLOPT_VERBOSE在使用该选项且第 3 个参数为 1 时,curl 库会显示详细的操作信息。这对程序的调试具有极大的帮助。7. CURLOPT_NOBODY使用该选项时,若第 3 个参数设为 1,这样在输出中就不会包含主体内容部分。这仅是对在传输的所有内容中,含有“头部”和“主题内容”两部分的协议而言。如 HTTP(S) 服务器,在这种情况下将会使 libcurl 库仅发出一个头部请求。8. CURLOPT_HEADER使用该选项时,第 3 个参数设置为 1,那么会通知 curl 库在输出时要同时包含 "头部“ 和 "主题内容" 两个部分。该选项仅是对那些同时包含了”头部“和”主题内容“这两部分的协议而言(如 HTTP)。9. CURLOPT_HEADERFUNCTION该选项与上面第 3 个选项 CURLOPT_WRITEFUNCTION 类&#;,只要它一接收到头部信息时,它就会执行回调函数。需要注意的是,回调函数里处理的头部包含了所有收到的响应的头部信息,而不只是最后一次的响应。如果需要处理其中的一个头部,那么自己需要在所收集的头部信息中进行区分。. CURLOPT_WRITEHEADER 和 CURLOPT_HEADERDATA这两个选项是同一种意思。它们和第 5 条中的 CURLOPT_WRITEDATA 选项功能一样,表示在接收到头部信息并调用回调函数时,给回调函数传递第 4 个参数。. CURLOPT_INFILESIZE当向服务器上传文件时,该选项用来告诉 curl 库期望上传的文件的大小。使用该选项时,应该给函数第 3 个参数的应该是个 long 型变量。如果用的是 SCP 传输,那么该选项强制使用 CURLOPT_INFILESIZE_LARGE 。. CURLOPT_INFILESIZE_LARGE该选项和 CURLOPT_INFILESIZE 功能一样,但是它要求函数的第 3 个参数必须是个 curl_off_t 类型。curl_off_t 为 int_t 类型,而 int_t 定义在 stdint.h 中:

由上面定义知,一般的,如果是 位平台,它就是 long long 型,表示 位的;如果是 位平台,它就是 long 型,也为 位。总之,就是个 位的。. CURLOPT_QUOTE 和 CURLOPT_POSTQUOTE这两个选项的功能类&#;,它们的共同点都是给 FTP 或 SFTP 传递命令。这些命令应该放在 struct slist 链表中存储,使用时需要用 curl_slist_append() 函数将这些命令打包起来,然后一起发送出去。它们的不同点是:CURLOPT_QUOTE 选项要求命令要在 FTP 传输请求之前就要发送到库,而 CURLOPT_POSTQUOTE 则可以在 FTP 传输请求发送完后发送。比如像下面的执行顺序是无法达到目的的:上面假设第 1 条 curl_easy_perform(curl); 语句已经发送了 FTP 传输请求,然后再用 CURLOPT_QUOTE 发送命令是错误的,这里应该使用 CURLOPT_POSTQUOTE 选项。使用 CURLOPT_QUOTE 选项需要先用 curl_easy_perform() 函数将其发送,然后再用一次 curl_easy_perform() 发送 FTP 传输请求。也就是说需要执行两次 curl_easy_perform() 函数。而用 CURLOPT_POSTQUOTE 选项则不需要这样,它只要将选项设置好后,然后只执行一次 curl_easy_perform() 函数即可。. CURLOPT_READFUNCTION 和 CURLOPT_READDATA这两个选项和上面的 CURLOPT_WRITEFUNCTION 和 CURLOPT_WRITEDATA 类&#;。在 CURLOPT_READFUNCTION 的回调函数里,第 1 个参数 ptr 指针用来接收从第 4 个参数传递过来的数据(这个参数往往是个文件流指针),而这个参数是使用 CURLOPT_READDATA 选项时传递过来的。. CURLOPT_UPLOAD在使用该选项时,第 3 个参数设置为 1,表示要准备上传文件。这个参数往往会配合 CURLOPT_READDATA,CURLOPT_INFILESIZE_LARGE,以及 CURLOPT_INFILESIZE 这几个选项一起用。如果是使用 HTTP 协议,那么使用 PUT 的方法进行上传,除非另有指定。

//curl_opt选项列表详细分析介绍,需要的朋友可以参考下

CCClippingNode导致的贴图错误问题 此问题我的原文和解决办法:

cocos2dx3.0的label字体去描边 /pre/h4pprename=codeclass=cpp近日,一直被3.0的字体描边所困扰,在安卓手机下字体没问题,挺好看,但是在iphone手机上显示特别不清晰,一直很怪异的感觉,

骨骼动画详解-Spine 游戏中人物的走动,跑动,攻击等动作是必不可少,实现它们的方法一般采用帧动画或者骨骼动画。帧动画与骨骼动画的区别在于:帧动画的每一帧都

标签: curl发送formdata

本文链接地址:https://www.jiuchutong.com/biancheng/372766.html 转载请保留说明!

上一篇:动作

下一篇:CCClippingNode导致的贴图错误问题

  • 申请退还增量留抵税额的条件包括
  • 有限合伙企业要交增值税吗
  • 公司打到个人账户需要多久
  • 委托贷款利息如何计算
  • 定额发票怎么验证真伪
  • 总公司汇总缴纳所得税升为一般纳税人分公司受影响吗
  • 水资源税怎么入账
  • 现金流是资产吗
  • 供货方提供安装材料
  • 行政划拨无偿取得发票
  • 企业购买汽车时需要交哪些税?
  • 房产税计税依据房产原值怎么算
  • 个税申报所属期和所得期
  • 企业职工教育经费
  • 加速折旧法主要包括哪些内容
  • 虚开增值税专用发票案例
  • 工业企业成本结转金额怎么确定
  • 全年一次性奖金计税方式2023
  • 无偿赠送资产需要交哪些税
  • 即征即退和先征后退适用范围
  • 开机提示lsass应用程序出错
  • 长期股权投资和资本公积关系
  • 以前年度的收入和成本错了要怎么调
  • 公司购买写字楼怎么入账
  • 进程中svchost
  • 虚拟机不能互相访问
  • php数组函数,选班长
  • php多个判断
  • cgtrader模型
  • 广告宣传费的税收筹划
  • 新建vue项目
  • php字符串比较大小
  • 前端面试题校招
  • vue组件之间传值几种方法
  • 年应税额是怎么算的
  • 不是销售类的工作可以做什么
  • 计入资本公积的金额怎么算
  • 外贸企业收款有限额吗
  • 织梦一直显示上一页和下一页
  • 织梦如何使用
  • 印花税技术服务合同包括哪些
  • 所得税季报中的营业收入包括营业外收入吗
  • 所得税退税可以不退吗
  • 财务费用报销流程图word
  • 商品互换定义
  • 应付账款扣除赔偿后开发票吗
  • 物业公司劳务外包
  • 收到社保局返还的各类社保款项应从哪个表单发起
  • 成本大于收入汇算清缴怎么处理
  • 员工还款还公司会计分录
  • 其他应收款如何做坏账处理
  • 小规模免征增值税的有哪些
  • 产品成本核算有哪些方法
  • 劳务派遣可以享受产假吗
  • 建筑机械使用安全规范最新版
  • 日记账是否必须全部建立
  • 新准则委托代建会计处理
  • mysql数据聚合
  • sqlserver多行转多列
  • ubuntu16.04lts
  • fedora系统安装教程
  • mac os操作教程
  • 使用linux常用命令
  • win10自带地图打不开
  • win7系统的一键还原怎么关闭
  • centos 软件源
  • 电脑自带win8是装win7还是win10
  • win10 无线热点
  • linux日志数据种类
  • win7怎么操作
  • linux openfoam
  • nodejs项目开发
  • js中的date函数
  • python django事务transaction源码分析详解
  • shell脚本的fi
  • js基于什么
  • 辽宁地方税务局网上申报
  • 餐饮专票可以抵扣吗
  • 为什么征收城市建设维护税却不征收教育附加税
  • 广西城建投资集团官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设