在网络编程中,常常需要使用c语言去请求网络数据,比如请求一个json数据。而c语言提供了libcurl库,可以方便地发送http请求。下面我们来看一下如何使用libcurl库发送http请求,并返回json数据。
#include <stdio.h> #include <curl/curl.h> size_t curl_callback(char *ptr, size_t size, size_t nmemb, void *userdata){ return fwrite(ptr, size, nmemb, (FILE*)userdata); } int main(){ CURL *curl; CURLcode res; FILE *fp; curl = curl_easy_init(); if(curl){ fp = fopen("test.json", "wb"); curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/getjson"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_callback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); res = curl_easy_perform(curl); curl_easy_cleanup(curl); fclose(fp); } return 0; }
上述代码就是一个简单的示例,通过libcurl库发送http请求,获取json数据。
该代码中,我们使用curl_easy_init()函数初始化一个curl句柄,通过curl_easy_setopt()函数设置curl选项。其中,CURLOPT_URL选项用于设置请求的url地址,CURLOPT_WRITEFUNCTION选项用于设置回调函数,该函数用于写入返回的数据,CURLOPT_WRITEDATA选项用于给回调函数传递一个文件指针,用于将数据写入文件。
最后,通过curl_easy_perform()函数执行http请求,获取json数据。获取到的json数据会被写入到test.json文件中。
总之,c语言通过libcurl库可以方便地发送http请求,并获取json数据。以上就是一个简单的示例,供大家参考。