libcurl安装和简单实例
2017-01-12 20:34
190 查看
libcurl 官网:https://curl.haxx.se/
libcurl也是curl工具使用的库
可以到官网下载,更方便的是到github上克隆代码
git clone https://github.com/curl/curl.git
编译和安装
cd curl
./buildconf
./configure
make
sudo make install
安装完毕之后,头文件
/usr/local/include/curl
/usr/local/lib/libcurl.so
可执行命令
/usr/local/bin/curl
> 另外一种办法是:可以简单的执行
sudo apt-get install curl
安装curl命令,该命令将curl安装/usr/bin
sudo apt-get install libcurl4-openssl-dev
来安装libcurl,libcurl的安装路径
头文件:/usr/include/curl
库目录:/usr/lib
> libcurl 与 tufao 通信: 发送请求与响应请求
#include <curl/curl.h>
#include "../h.h"
// ptr: data from server
// size: size of block
// nmemb: block counts
// totalsize = size * nmemb
// userdata: user input, CURLOPT_WRITEDATA
// return: output datalen
size_t wirte_callback(char* ptr, size_t size, size_t nmemb, void* userdata)
{
char* buf = (char *)malloc(size * nmemb + 1);
memcpy(buf, ptr, size*nmemb);
buf[size*nmemb] = 0;
printf("recv data = %s\n", buf);
printf("*********************\n");
free(buf);
return size * nmemb;
}
int main(int argc, char* argv[])
{
// init curl
CURLcode code = curl_global_init(CURL_GLOBAL_ALL);
if (code != CURLE_OK)
{
printf("global init error\n");
return 1;
}
// create CURL object
CURL* curl = curl_easy_init();
// set URL, send address;
curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.49.136:8080");
// set callback function, get response data
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, wirte_callback);
// set callback function userdata
curl_easy_setopt(curl, CURLOPT_WRITEDATA, NULL);
// send http request
code = curl_easy_perform(curl);
if (code != CURLE_OK)
{
printf("perform error\n");
return 2;
}
// 释放 curl
curl_easy_cleanup(curl);
return 0;
}
> libcurl发送post请求
#include "../h.h"
#include <curl/curl.h>
size_t wirte_callback(char* ptr, size_t size, size_t nmemb, void* userdata)
{
char* buf = (char *)malloc(size * nmemb + 1);
memcpy(buf, ptr, size*nmemb);
buf[size*nmemb] = 0;
printf("recv data = %s\n", buf);
printf("*********************\n");
free(buf);
return size * nmemb;
}
int main()
{
CURLcode code = curl_global_init(CURL_GLOBAL_ALL);
if (code != CURLE_OK)
{
printf("global init err\n");
return -1;
}
CURL* curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.49.136:8081");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, wirte_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, NULL);
// set post method
curl_easy_setopt(curl, CURLOPT_POST, 1);
// set post data
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "this is post data");
// set opst size, if is text, can not option.
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, sizeof("this is post data"));
code = curl_easy_perform(curl);
if (code != CURLE_OK)
{
printf("perform err\n");
return -2;
}
curl_easy_cleanup(curl);
return 0;
}
libcurl也是curl工具使用的库
可以到官网下载,更方便的是到github上克隆代码
git clone https://github.com/curl/curl.git
编译和安装
cd curl
./buildconf
./configure
make
sudo make install
安装完毕之后,头文件
/usr/local/include/curl
/usr/local/lib/libcurl.so
可执行命令
/usr/local/bin/curl
> 另外一种办法是:可以简单的执行
sudo apt-get install curl
安装curl命令,该命令将curl安装/usr/bin
sudo apt-get install libcurl4-openssl-dev
来安装libcurl,libcurl的安装路径
头文件:/usr/include/curl
库目录:/usr/lib
> libcurl 与 tufao 通信: 发送请求与响应请求
#include <curl/curl.h>
#include "../h.h"
// ptr: data from server
// size: size of block
// nmemb: block counts
// totalsize = size * nmemb
// userdata: user input, CURLOPT_WRITEDATA
// return: output datalen
size_t wirte_callback(char* ptr, size_t size, size_t nmemb, void* userdata)
{
char* buf = (char *)malloc(size * nmemb + 1);
memcpy(buf, ptr, size*nmemb);
buf[size*nmemb] = 0;
printf("recv data = %s\n", buf);
printf("*********************\n");
free(buf);
return size * nmemb;
}
int main(int argc, char* argv[])
{
// init curl
CURLcode code = curl_global_init(CURL_GLOBAL_ALL);
if (code != CURLE_OK)
{
printf("global init error\n");
return 1;
}
// create CURL object
CURL* curl = curl_easy_init();
// set URL, send address;
curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.49.136:8080");
// set callback function, get response data
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, wirte_callback);
// set callback function userdata
curl_easy_setopt(curl, CURLOPT_WRITEDATA, NULL);
// send http request
code = curl_easy_perform(curl);
if (code != CURLE_OK)
{
printf("perform error\n");
return 2;
}
// 释放 curl
curl_easy_cleanup(curl);
return 0;
}
> libcurl发送post请求
#include "../h.h"
#include <curl/curl.h>
size_t wirte_callback(char* ptr, size_t size, size_t nmemb, void* userdata)
{
char* buf = (char *)malloc(size * nmemb + 1);
memcpy(buf, ptr, size*nmemb);
buf[size*nmemb] = 0;
printf("recv data = %s\n", buf);
printf("*********************\n");
free(buf);
return size * nmemb;
}
int main()
{
CURLcode code = curl_global_init(CURL_GLOBAL_ALL);
if (code != CURLE_OK)
{
printf("global init err\n");
return -1;
}
CURL* curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.49.136:8081");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, wirte_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, NULL);
// set post method
curl_easy_setopt(curl, CURLOPT_POST, 1);
// set post data
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "this is post data");
// set opst size, if is text, can not option.
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, sizeof("this is post data"));
code = curl_easy_perform(curl);
if (code != CURLE_OK)
{
printf("perform err\n");
return -2;
}
curl_easy_cleanup(curl);
return 0;
}
相关文章推荐
- PHPMailer安装方法及简单实例
- ISA防火墙简单安装配置实例
- Redis:安装、配置、操作和简单代码实例(C语言Client端)
- Struts2安装与简单部署实例
- Pig安装及简单实例
- PHPMailer安装及简单实例
- Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
- Redis:安装、配置、操作和简单代码实例(C语言Client端)
- 关于源码安装以及http的安装的简单实例
- maven基础学习(二)-简单实例(编译-打包-安装)
- ISA防火墙简单安装配置实例
- Django 安装与配置 + 极简单Blog搭建(Django实例)
- Detour安装及简单使用实例
- centos mongodb安装及简单实例
- 在CentOS6.2下安装DNS服务软件Bind并快速配置简单实例
- ISA防火墙简单安装配置实例
- RabbitMQ 安装配置和简单实例
- RabbitMQ入门之安装配置与简单实例
- RabbitMQ入门之安装配置与简单实例----perfect
- Detour安装及简单使用实例