【libcurl笔记】Linux下curl和libcurl的安装和调用

本文详细介绍了如何在Linux系统中安装curl和libcurl,包括从官方获取安装包、配置、编译及环境变量设置。同时,讲解了C/C++如何调用libcurl库进行HTTP请求,强调了在编译时加入-lcurl参数的重要性,并提到了curl命令的实用技巧,为libcurl的使用打下基础。
摘要由CSDN通过智能技术生成

1. 安装curl和libcurl

Linux部分机器自带curl,可以直接使用,但不会包含curl库,且有些版本过旧,所以仍然建议下载最新版本curl使用

(1)获得安装包(官网http://curl.haxx.se/)

本文列出不一定是当前最新版,到官网查询最新版本链接自行更改即可

 # wget http://curl.haxx.se/download/curl-7.65.1.tar.gz 
(2)解压
# tar -zxf curl-7.65.1.tar.gz
(3)进入解压后的目录
# cd curl-7.65.1
(4)配置文件

一般无需设置直接使用默认配置即可,建议不要修改安装路径,否则后续还需自行添加include路径,若需指定安装路径,使用–prefix参数

# ./configure --prefix=/usr/local/curl

其余的配置的使用可通过./configure --help查看

建议安装之前先查看当前目录下的README、GIT-INFO、INSTALL文件,许多不可预测的问题都能在此找到答案

(5)make
# make 
# make install 
(6)检查版本
# curl --version

版本信息与安装版本相符则到此步骤已经安装成功

(*)将curl命令加入环境变量

(如果按照默认路径安装则无需执行此步骤)

仅对本会话起作用,或者在.bash_profile、.bashrc文件里配置环境变量

# export PATH=$PATH:/usr/local/curl/bin
(*)添加curl.h到include路径

(如果按照默认路径安装则无需执行此步骤)

# cp -r /usr/local/curl/include/curl /usr/include
(*)C/C++调用libcurl

到/usr/local/lib/或指定的安装路径,即可查看到安装好的库文件

若要include库文件可如下编写

#include <curl/curl.h>

可根据参考文献2中代码测试libcurl

需要注意在编译过程中一定要加入 -lcurl 参数,否则将出现链接错误,如g++ main.cpp -o main -lcurl

2. curl命令的简单实用

以下命令为curl与localhost通讯进行上传和下载文件

# curl -v -X PUT http://localhost/doc/1.txt -T 2.txt
# curl -v -X GET http://localhost/doc/1.txt -o 2.txt

选项-v--verbose为显示详细操作信息,建议刚开始使用时加上,能为调试提供很大帮助。

其余选项的使用可以使用curl --helpman curl查看帮助信息,每个选项都有详细的说明。(中文翻译

curl命令能为之后curl库的使用提供参考基础,建议在进行curl代码编写前先使用curl命令实现,有些时候的bug不是代码造成的,有可能本身curl就无法建立连接。

3. curl库的调用

libcurl主要提供了两种发送http请求的方式,分别是Easy interface方式和multi interface方式,前者是采用阻塞的方式发送单条数据,后者采用组合的方式可以一次性发送多条数据

libcurl传输任务流程如下(其中最重要的是3和4步):

  • 1 调用curl_global_init()初始化libcurl
  • 2 调用curl_easy_init()得到easy interface型指针(句柄)
  • 3 调用curl_easy_setopt()设置传输选项
  • 4 根据curl_easy_setopt()实现回调函数
  • 5 调用curl_easy_perform()传输数据
  • 6 调用curl_easy_cleanup()清空句柄
  • 7 调用curl_global_cleanup()释放内存
#include <curl/curl.h>
#include <string>
#include <iostream>
using namespace std;

int httpPutFile(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值