淘先锋技术网

首页 1 2 3 4 5 6 7

在网络编程中,常常需要使用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数据。以上就是一个简单的示例,供大家参考。