libcurl上手笔记-HTTP方法 GET、POST、PUT、DELETE

GET

GET方法比较简单,使用一条语句设置即可。

cpp 复制代码
	curl_easy_setopt(curl, CURLOPT_HTTPGET, 1L);

POST

cpp 复制代码
{//方法1
/*使用CURLOPT_POST时,会将方法设置成POST,但是默认还需要从stdin读取提交的内容
* 所以需要用CURLOPT_POSTFIELDSIZE显试设置不需要提交内容
* postfieldsize默认值为-1,表示Unkownsize,默认读取NULL结果的字符串,不能读取二进制。
* 如果要读取二进制,就一定需要设置postfieldsize。
*/
	curl_easy_setopt(curl, CURLOPT_POST, 1L);
	curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, 0);
}
{//方法2:通过CURLOPT_POSTFIELDS或CURLOPT_COPYPOSTFILEDS来同时设置提交的内容
/**CURLOPT_POSTFIELDS或CURLOPT_COPYPOSTFILEDS的区别在于
* 1. CURLOPT_POSTFIELDS只能设置NULL结果的字符串,CURLOPT_COPYPOSTFILEDS可以设置二进制
* 2. CURLOPT_POSTFIELDS内部直接使用传入的指针,在整个http请求结束之前,不能修改
*    CURLOPT_COPYPOSTFILEDS会在内部将传入的指针数据copy一份。  
*/
	curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "");
}

//Disable Expect : 100 - continue
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Expect:");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);

PUT

cpp 复制代码
//CRULOPT_PUT已经不支持,用CURLOPT_UPLOAD	
curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
//不需要提交内容
//如果需要提交,使用CURLOPT_READDATA、CURLOPT_READFUNCTION来设置数据回调
curl_easy_setopt(curl, CURLOPT_INFILESIZE, 0L);

//Disable Expect : 100 - continue
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Expect:");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);

DELETE

cpp 复制代码
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
相关推荐
程序员Xu8 分钟前
大厂机试题解法笔记大纲+按知识点分类+算法编码训练
笔记·算法
张哈大35 分钟前
【 java 虚拟机知识 第二篇 】
java·开发语言·jvm·笔记
achene_ql36 分钟前
手写muduo网络库(七):深入剖析 Acceptor 类
linux·服务器·开发语言·网络·c++
爱分享的程序员39 分钟前
前端面试专栏-基础篇:5. HTTP/2 协议深度解析
网络·网络协议·http
礼貌而已41 分钟前
Vue3项目与桌面端(C++)通过Websocket 对接接口方案实现
开发语言·c++·websocket
bing_1581 小时前
Spring Boot 项目中Http 请求如何对响应体进行压缩
spring boot·后端·http
ArabySide1 小时前
【JavaScript】 HTTP Cookie 核心知识梳理与常用的封装实现
javascript·计算机网络·http·web
Lenyiin1 小时前
第 87 场周赛:比较含退格的字符串、数组中的最长山脉、一手顺子、访问所有节点的最短路径
java·c++·python·leetcode·周赛·lenyiin
彷徨而立1 小时前
【C/C++】创建文件夹
c语言·开发语言·c++
虾球xz1 小时前
游戏引擎学习第315天:取消排序键的反向顺序
开发语言·c++·学习·游戏引擎