[From HTTP to AWS][4]使用LibcURL with OpenSSL support

其实LibcURL有不少语言的Binding,我比较喜欢C++,但鉴于CURLPP太麻烦,所以就直接C语言版LibcURL。

>> Build OpenSSL

www.openssl.org下载OpenSSL并安装perl环境

1> perl Configure VC-WIN32 --prefix=c:/some/openssl/dir

2> ms\do_ms
3> nmake -f ms\nt.mak (for static library)

or

3> nmake -f ms\ntdll.mak (for DLL)

>> Build LibcURL

http://curl.haxx.se下载LibcURL, 打开vc6curl.dsw编译。

注意Preprocessor中有没有:USE_SSLEAY和USE_OPENSSL

 

>> Certification

http://curl.haxx.se/docs/sslcerts.html


LibCURL提供了一个mk-ca-bundle.pl,从Mozilla下载一个certdata.txt再倒腾一把,可以生成想要的*.crt文件。

'http://mxr.mozilla.org/seamonkey/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1'

运行perl script利用OpenSSL生成ca-bundle.crt,然后配置CURLOPT_CAINFO就可以大功告成:


// Run this script to generate ca-bundle.crt

S:\Components\CPlusPlus\cURL\curl-7.20.0\lib\mk-ca-bundle.pl

如果配置不成功,在访问HTTPS的时候会报错CURLE_SSL_CACERT。


>> 初试LibcURL

最简单的例子, 在这个例子内,将"http://curl.haxx.se/docs/thanks.html"页面内容取回并写到本地文件内。
尽管比起Python的UrlLib麻烦些,还是不错的。

对于Easy Interface,基本的步骤如下:

初始化LibCurl

初始化Easy Interface

设置所需的Option

执行请求

清理Easy Interface

清理LibCurl


Code:

// --------------------------------------------------------------------------------------------------------

// Initialize libcurl

//

CURLcode return_code;

return_code = curl_global_init(CURL_GLOBAL_WIN32);

if (CURLE_OK != return_code) return ;

// Get easy handle

//

CURL *easy_handle = curl_easy_init();

if (NULL == easy_handle)

{

curl_global_cleanup();

return ;

}

// Open a local file

//

FILE *fp = fopen("c:\\thanks.html", "ab+"); 
// Set easy handle properties

//

curl_easy_setopt(easy_handle, CURLOPT_URL, "http://curl.haxx.se/docs/thanks.html");

curl_easy_setopt(easy_handle, CURLOPT_WRITEFUNCTION, &process_data);

curl_easy_setopt(easy_handle, CURLOPT_WRITEDATA, fp);

// Perform Request

//

curl_easy_perform(easy_handle);   
// Close File

//

fclose(fp);

// clean up curl

//

curl_easy_cleanup(easy_handle);

curl_global_cleanup();

// --------------------------------------------------------------------------------------------------------

原文链接: https://www.cnblogs.com/piaoger/archive/2011/04/10/2011052.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    [From HTTP to AWS][4]使用LibcURL with OpenSSL support

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/23778

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 上午1:40
下一篇 2023年2月8日 上午1:40

相关推荐