我已经从源代码中安装了libcurl(curl-7.60.0)作为Windows 10和Visual Studio 2015中的静态库。在curl / curl.h中,我添加了这些#defines:BUILDING_LIBCURL,CURL_STATICLIB,USE_SCHANNEL和USE_WINDOWS_SSPI。从C ++我可以通过一个简单的写回调函数(http://返回fwrite(ptr,size,nmemb,(FILE *)stream)来访问和保存到http://的文件没有问题。)
当我尝试使用相同的回调函数从https://[host][file路径下载]时,我没有下载任何内容。 Curl_version_info表示支持https(没有多个后端),TLS库名称= WinSSL。 Schannel报告与主机的SSL / TLS连接。 Curl报告“GET [文件路径] HTTP / 1.1”和“接受 / ”。
然后schannel报告读取和解密一些数据,“HTTP / 1.1 302 FOUND”和正确的位置。 Curl_easy_perform报告没有错误,但Content-length为0,没有写入字节,我可以看到从未调用过write回调函数。
使用Web浏览器下载同一文件没问题。
似乎我没有设法调用https正文的写回调函数。我找不到curl_easy_setopt选项来解决这个问题,并怀疑为了构建库而缺少一些#define。
有人能理解和帮助吗?
答案 0 :(得分:0)