libcurl的使用,我们使用easy的方式:
首先加载头文件
#include <curl/curl.h>
#include <curl/types.h>
#include <curl/easy.h>
可以采用POST或GET或其他的方式进行,下面以POST方式为例:
size_t write_data(void * ptr, size_t size, size_t nmemb, void * stream)
{
memcpy(stream, ptr, size * nmemb);
return size * nmemb;
}
int main(int argc, char * argv[])
{
char buff[1024];
bzero(buff, 1024);
CURL * curl;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
char * data = "name=xxx"; // post到server的内容
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data); // 设置POST的方式
curl_easy_setopt(curl, CURLOPT_URL, "http://xxx.xxx.xxx.xxx/"); // 设置server的URL
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buff); // 设置write_data函数的最后一个参数的地址
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); // 设置server的返回的数据的接收方式
curl_easy_perform(curl);
curl_easy_cleanup(curl);
printf("\nbuff : %s\n", buff);
return 0;
}
PS :
【1】http://curl.haxx.se/libcurl/c/libcurl-tutorial.html
【2】http://curl.haxx.se/docs/httpscripting.html
首先加载头文件
#include <curl/curl.h>
#include <curl/types.h>
#include <curl/easy.h>
可以采用POST或GET或其他的方式进行,下面以POST方式为例:
size_t write_data(void * ptr, size_t size, size_t nmemb, void * stream)
{
memcpy(stream, ptr, size * nmemb);
return size * nmemb;
}
int main(int argc, char * argv[])
{
char buff[1024];
bzero(buff, 1024);
CURL * curl;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
char * data = "name=xxx"; // post到server的内容
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data); // 设置POST的方式
curl_easy_setopt(curl, CURLOPT_URL, "http://xxx.xxx.xxx.xxx/"); // 设置server的URL
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buff); // 设置write_data函数的最后一个参数的地址
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); // 设置server的返回的数据的接收方式
curl_easy_perform(curl);
curl_easy_cleanup(curl);
printf("\nbuff : %s\n", buff);
return 0;
}
PS :
【1】http://curl.haxx.se/libcurl/c/libcurl-tutorial.html
【2】http://curl.haxx.se/docs/httpscripting.html