libcurl使用备忘


1、在多线程中必须在主线程显式调用            curl_global_init(CURL_GLOBAL_DEFAULT);和curl_global_cleanup();


2、不同的线程必须使用不同的handler,但是不同的handler之间无需加锁(线程安全)

3、加报头:

	struct curl_slist *headers = NULL;
	headers = curl_slist_append(headers, "Content-type:text/xml");
	headers = curl_slist_append(headers, "Expect:");

4、参数:

		curl_easy_setopt(curl, CURLOPT_URL, postURL);
		curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
		curl_easy_setopt(curl, CURLOPT_POSTFIELDS, content);
		curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, strlen(content));
		curl_easy_setopt(curl, CURLOPT_POST, 1);
		curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);//show Debug Infos 
		curl_easy_setopt(curl, CURLOPT_HEADER, 0);
		curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1);
		curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_callback);
		curl_easy_setopt(curl, CURLOPT_WRITEDATA, rBuf);
		
		
		curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 2);
		curl_easy_setopt(curl, CURLOPT_TIMEOUT, 2);
		curl_easy_setopt(curl, CURLOPT_NOSIGNAL,1);
		curl_easy_setopt(curl, CURLOPT_FORBID_REUSE, 1);
		curl_easy_setopt(curl, CURLOPT_BUFFERSIZE, 5000);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);

curl_slist_free_all(headers);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值