curl实际是一个实现了网络应用层各种协议的类库(libcurl)或应用程序(curl.exe).
本篇目的:
内容:
libcurl是什么(中篇)
-
libcurl网页介绍学到的表达方式:
the internet transfer backbone
protocol
关于billion的美英不同理解
为什么要编译libcurl库
libcurl以及curl.exe编译
curl.exe程序测试
制作成curlSDK包
引入curlSDK给libquickmail进行编译(下篇)
配置腾讯qq邮箱,获取access token,用于smpts发送邮件
编写测试代码测试libquickmail
简单了解一下源码,知道libquickmail中是如何调用curl进行邮件发送的
1. 无处不在的curl库:
使用过php的程序员都知道,php中进行网络访问都是直接使用curl封装后的cURL直接进行各种网络访问。
支持所有的主流操作系统
libcurl has been ported to numerous platforms and CPUs. libcurl offers the same API and feature set on all of them! Using libcurl assures you that you can write your application to work on very large amount of systems, including but not limited to 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 and more...实际上只要是网络协议方面的内容,没有curl不支持的:
Supports...
DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos), file transfer resume, proxy tunneling and more.
红线部分画出了curl支持的所有协议,够全面,够专业
实际上其他语言的网络访问相关的功能,很多都是通过封装curl库来实现的。
curl官网提供了常用操作系统预编译的curl应用程序,但都是可执行文件,我们需要的是libcurl(而不是curl.exe),因此自己编译库,才是程序员需要做的事情!
2. windows下编译curl库:
curl下载地址,选择下载最新版源码而不是预编译程序(预编译版不是libcurl而是运行程序,我们需要libcurl库来发送smtps协议邮件)
由于编译过程有一些细节以及对vs2015要一定的了解,为了更好的演示及推广c/c++,我就拍一段视频,然我们来看一下行云流水般操作vs2015的过程:
编译licurl视频演示
若手机播放不了,请换pc试试看
通过视频,我们能更加清晰的了解如何使用vs c++来编译各种顶级的基础库,从而让你的业务能力大幅度提高