libcurl http get

#include <dlfcn.h>
#include <sys/types.h>
#include <unistd.h>
#include <pthread.h>
#include <stdio.h>
#include <iconv.h>
#include <string.h>
#include <stdlib.h>
#include <pthread.h>
#include <sys/time.h>
#include <string.h>
#include <errno.h>

#include <curl/curl.h>
#include <curl/easy.h>


size_t WriteData(void *buffer, size_t size, size_t nmemb, FILE *file)
{
    size_t r_size = fwrite(buffer, size, nmemb, file);

    std::cout << "===============" << (char*)buffer << std::endl;
    fclose(file);
    return r_size;
}

int main()
{

    #define GETURL "http://10.0.1.77:8999/blacklist?id=132623198111196400"

    char path[] = "save_file.txt";
    FILE *file = fopen(path,"w");

    CURL * m_curl;
    m_curl = ::curl_easy_init();

    curl_slist *plist = curl_slist_append(NULL, "Connection: keep-alive");
    plist = curl_slist_append(plist,
                    "Content-Type:application/json");
    ::curl_easy_setopt(m_curl, CURLOPT_HTTPHEADER, plist);
    ::curl_easy_setopt( m_curl, CURLOPT_URL, GETURL );

    ::curl_easy_setopt( m_curl, CURLOPT_TIMEOUT, 2);
    ::curl_easy_setopt( m_curl, CURLOPT_CONNECTTIMEOUT, 2);
    ::curl_easy_setopt(m_curl, CURLOPT_WRITEFUNCTION, WriteData);
    ::curl_easy_setopt(m_curl, CURLOPT_WRITEDATA, file);
    CURLcode res = ::curl_easy_perform( m_curl);

    curl_slist_free_all(plist);

    ::curl_global_cleanup();

    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章