使用libcurl 和 jsoncpp 实现JSON数据网络GET、POST (2019/6)

本文介绍了如何使用libcurl和jsoncpp库进行JSON数据的网络GET和POST操作。首先讲解了libcurl的下载、编译及在VS和Qt中静态库与动态库的使用注意事项,提到了依赖库的路径。接着介绍了jsoncpp的获取与编译过程,通过CMake构建工程。最后,提供了简单的上传类实现,并提及了处理服务器返回Unicode编码问题的提示,以及提供了Qt和VS2015项目的下载链接。

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

1. libcurl 和 jsoncpp库的准备

  • libcurl

curl-7.65.0.zip

官网获取最新,一定注意最新的是在github,使用最新的

https://github.com/curl/curl

然后解压后进入curl-7.65.0\projects\Windows 选择对应版本编译使用就可以了。

note:

  • 我在VS里面用静态库没问题,在Qt里面使用静态库有问题,用动态库就没问题。
  • 需要配合系统的lib使用。该文件在系统路径下也有的,对应版本路径为:

libs:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib

dlls:

C:\Windows\SysWOW64

C:\Windows\System32

libcurl dependent.zip

 

最后贴上自己编译的VC12/VC14版本所有的

libcurl.zip

  • jsoncpp

 

jsoncpp-master.zip

JSONCPP 也务必去github 获取

https://github.com/open-source-parsers/jsoncpp

我自己在网上搜的实在是一言难尽,编译还要改MTD,改完了编译好了的库我又使用不了,最后甚至直接使用源码做了,后来想想不对劲儿,就去搜了搜,就是这版了。

解压之后使用CMAKE 构建工程,然后使用对应编译器编译就可以了。我编译好的VS2015的版本也放着了

JSONCPP.zip

2.测试使用

测试参考了

https://blog.youkuaiyun.com/z550449054/article/details/78683976

感谢!

 

 

获取鉴权代码:

bool Upload::getToken()
{
    std::string token_ret;
    CURL *curl;
    CURLcode res;
    std::string url;
    //HTTP报文头
    struct curl_slist* headers = NULL;

    url=m_url_token+"?account="+m_account+"&password="+m_password;
    curl = curl_easy_init();

    if (curl)
    {
        //设置url
        curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);

        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, data_callback);//设置回调函数
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &token_ret);//设置写数据
        res = curl_easy_perform(curl);//执行
        curl_slist_free_all(headers); /* free the list again */

        /* always cleanup */
        curl_easy_cleanup(curl);
    }

    if (res != CURLE_OK) {
        fprintf(stderr, "curl_easy_perform() failed: %s\n",
            curl_easy_strerror(res));
        return false;
    }
    else
    {
        // 开始获取json中的access token项目
        Json::Reader reader;
        Json::Value roo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值