libcurl进行HTTP GET获取JSON数据(转载)

Posted 车臣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了libcurl进行HTTP GET获取JSON数据(转载)相关的知识,希望对你有一定的参考价值。

转载:http://blog.csdn.net/vincent2610/article/details/68488365

#include <stdio.h>
#include <iostream>
#include <sstream>
using namespace std;

size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream) 
{
    string data((const char*) ptr, (size_t) size * nmemb);

    *((stringstream*) stream) << data << endl;

    return size * nmemb;
}

int main(int argc, char *argv[])
{
    
        // 基于当前系统的当前日期/时间
        time_t now = time(0);
        char* dt = ctime(&now);
        cout << dt << "-------------------------------------" << endl;

        /*HTTP GET json data*/
        std::stringstream out;
        void* curl = curl_easy_init();
        // 设置URL
        curl_easy_setopt(curl, CURLOPT_URL, "http://if.qdocument.net:705/bic/download/[email protected]&pageNum=1");
        // 设置接收数据的处理函数和存放变量
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &out);

        // 执行HTTP GET操作
        CURLcode res = curl_easy_perform(curl);
        if (res != CURLE_OK) {
            fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
        }

        // 接受数据存放在out中,输出之
        //cout << out.str() << endl;
        string str_json = out.str();


        printf("%s",str_json.c_str());
        curl_easy_cleanup(curl);

    return 0;
}

 

以上是关于libcurl进行HTTP GET获取JSON数据(转载)的主要内容,如果未能解决你的问题,请参考以下文章

libcurl怎样判断数据接收完成

libcurl get和post的区别

有熟悉用libcurl在linux下获取http请求的大牛么,最好能有示例

怎么获取AJAX前台返回JSON 数据

http get请求获取server返回的应答数据

gcc get_http.c –lcurl啥意思