【踩坑记录】c++使用libcurl、jsoncpp发送post请求

本文记录了在Linux环境下,使用C++通过libcurl库发送POST请求时遇到的编译及运行问题。首先介绍了libcurl的使用步骤,包括初始化、设置选项、执行请求和清理。接着,作者描述了安装libcurl和解决JsonCpp头文件找不到的问题,以及如何静态链接JsonCpp库。最后,列举了一些常见的HTTP状态码,作为参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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::
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值