简介
libcurl作为是一个多协议的便于客户端使用的URL传输库,基于C语言,提供C语言的API接口,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP这些协议,同时支持使用SSL证书的安全文件传输:HTTP POST, HTTP PUT, FTP 上传, 基于HTTP形式的上传、代理、Cookies、用户加密码的认证等多种应用场景。另外,libcurl是一个高移植性的库,能在绝大多数系统上运行,包括Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, BeOs, Mac OS X, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, DOS等。
前段时间需要使用C++发起http请求,这里对这些使用做一个总结以备忘。libcurl封装了协议的底层实现,非常方便用户开发应用层逻辑。
使用步骤
具体使用主要遵循如下步骤:
1. 全局初始化
2. 创建当次请求句柄
3. 设置属性
4. 执行
5. 销毁当次请求句柄
6. 全局析构
下面详细说明:
1.全局初始化
CURLcode curl_global_init(long flags);
flags:
CURL_GLOBAL_ALL //初始化所有内部的模块
CURL_GLOBAL_SSL //初始化支持安全套接字
CURL_GLOBAL_WIN32 //初始化win32套接字库
CURL_GLOBAL_NOTHING //不初始化任何额外模块
CURL_GLOBAL_DEFAULT //与CURL_GLOBAL_ALL相同
该函数必须再所有其他