c++利用libcurl发送POST请求
libcurl的easy interface是最基本的用法,简要流程为:
1、在主线程中调用curl_global_init(CURL_GLOBAL_ALL)初始化libcurl
2、调用curl_easy_init获取一个句柄,得到 easy interface型指针;
3、调用curl_easy_setopt函数设置此次传输的一些基本参数,如url地址、http头、cookie信息、发送超时时间等,其中,CURLOPT_URL是必设的选项,还能实现回调函数以完成用户特定任务;
4、设置完成后,调用curl_easy_perform函数发送数据,完成传输任务;
5、数据发送完毕后,调用curl_easy_cleanup清空句柄;
6、调用curl_global_cleanup()做清理工作,释放内存。
#include <curl/curl.h>
#include <jsoncpp/json/json.h>
//回调函数
static int writer(char* data, size_t size, size_t nmemb, std::string* writer_data)
{
unsigned long sizes = size * nmemb;
if (NULL == writer_data){
return 0;
}
writer_data->append(data, sizes);
return sizes;
}
std::string getRealUrl(CURL *pCurl, std::string url){
std::string strJsonData = getJsonData(url);//url转化为json字符串(自定义)
std::string post_url = "XXXX";//发送请求的URL地址
std::string result = "";//返回json字符串
std::