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");
相关推荐
史迪奇_xxx2 小时前
10、一个简易 vector:C++ 模板与 STL
java·开发语言·c++
遇印记3 小时前
大二java学习笔记:二维数组
java·笔记·学习
我是华为OD~HR~栗栗呀4 小时前
华为od-21届考研-C++面经
java·c语言·c++·python·华为od·华为·面试
oioihoii4 小时前
C++ 中的类型转换:深入理解 static_cast 与 C风格转换的本质区别
java·c语言·c++
小妖6664 小时前
vscode 怎么运行 c++ 文件
开发语言·c++
lingran__4 小时前
算法沉淀第三天(统计二进制中1的个数 两个整数二进制位不同个数)
c++·算法
bnsarocket5 小时前
Verilog和FPGA的自学笔记6——计数器(D触发器同步+异步方案)
笔记·fpga开发·verilog·自学·硬件编程
小冯记录编程5 小时前
深入解析C++ for循环原理
开发语言·c++·算法
磨十三6 小时前
C++ 容器详解:std::list 与 std::forward_list 深入解析
开发语言·c++·list
今麦郎xdu_6 小时前
【Linux系统】命令行参数和环境变量
linux·服务器·c语言·c++