libcurl 接受完整数据

本文详细介绍了如何使用libcurl库进行数据传输,包括初始化、设置传输选项、回调函数的实现以及执行传输任务和资源清理。以百度NLP接口为例,展示了具体代码操作。
摘要由CSDN通过智能技术生成

首先了解一下基本的函数作用

1.       调用curl_global_init()初始化libcurl
2.       调用curl_easy_init()函数得到 easy interface型指针
3.       调用curl_easy_setopt()设置传输选项
4.       根据curl_easy_setopt()设置的传输选项,实现回调函数以完成用户特定任务
5.       调用curl_easy_perform()函数完成传输任务
6.       调用curl_easy_cleanup()释放内存

贴图看代码,这是百度NLP的接口例子

1、回调函数

static size_t callback(void *ptr, size_t size, size_t nmemb, void *stream) {
    // 获取到的body存放在ptr中,先将其转换为string格式
    
    std::string html_data(reinterpret_cast<const char*>(ptr), size * nmemb);
    *(reinterpret_cast<std::ostringstream*>(stream)) << html_data;
    
    return size * nmemb;
}

 

int unit_utterance(std::string &json_result, const std::string json_request_body,
             const std::string &access_token) {
    std::string url = get_utterance_url + "?access_token=" + access_token;
  
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值