libcurl easy API使用流程及OpenSSL注意事项
一、基本使用流程
- 全局初始化,curl_global_init();
- 申请句柄,pcurl = curl_easy_init();
- 设置参数,curl_easy_setopt(pcurl, …, …);
- 执行请求,curl_easy_perform(pcurl);
- 释放句柄,curl_easy_cleanup(pcurl);
- 全局释放,curl_global_cleanup();
必须设置curl_easy_setopt(pcurl, CURLOPT_FOLLOWLOCATION, 1L);否则在某些网络环境下会出现函数返回成功,但是下载不到数据。
出于安全考虑,Web服务器需要启用SSL,需要使用HTTPS方式访问,Web服务器端又使用了SNI技术,然而Windows XP不支持SNI技术,导致Windows XP系统下使用WinINet API实现的HTTPS接口访问不了Web服务器。
查阅相关资料后确定使用libcurl+openssl实现HTTP请求接口替换掉WinINet API实现的接口。选择以纯静态库方式调用,编译了支持openssl、zlib的libcurl静态库。
写了个使用curl easy接口获取下载文件大小的函数,在主程序中进行测试的时候,发现和CxImage库中使用的zlib发生了冲突。
搜索了下发现可以通过FORCE:MULTIPLE让编译器忽略这种冲突,但是微软官方给出了提示,这样处理可能会导致不可预期的问题,所以不能使用这种方式解决冲突。
阅读剩余部分 –
建立如下图所示的目录结构:
阅读剩余部分 –
下载地址:https://www.openssl.org/source/,这里选择openssl-1.0.2q.tar.gz。
阅读剩余部分 –