【发布时间】:2012-04-04 07:59:39
【问题描述】:
我正在使用 Visual Studio C++ 2010,它与 cURL 一起工作得很好,但问题是 https 请求什么也不返回。而不是显示输出:
#include "StdAfx.h"
#include <stdio.h>
#include <curl/curl.h>
#include <conio.h>
int main(void)
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://www.google.com");
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
_getch();
return 0;
}
例如这段代码,它只是一个对谷歌的 https 请求,但它没有返回任何内容,因为它以 https 开头。如果我去掉https的“s”,它就可以正常工作:“http://www.google.com.br”正常显示结果。我在这里想念什么?我正在使用 cURL 中的示例。 我尝试了其他网站,同样的事情发生了。 :/ 喜欢https://www.facebook.com
顺便说一句,如果你们知道如何将网页内容存储在字符串中,我很高兴知道。
提前致谢。 :)
【问题讨论】:
-
将这些 ssl 验证标志设置为零真的是您想要的吗?稍微戳一下似乎意味着它将绕过某种程度的验证。我的第一次尝试是尝试看看是否可以像在命令行 curl 上使用 https url 那样清除这些标志。我猜它会以同样的方式失败。
-
迈克尔我不太确定。我想要的是在没有任何 SSL 安全性的情况下正确获得 https,因为我希望它能够快速检索数据。但是现在我什么也得不到:/我想要获得最快的方法,即使它会危及数据的安全性。
-
您是从源代码构建的吗?如果是这样,您是否明确启用 SSL 支持?如果没有,您下载的软件包是否启用了 SSL 支持(或者,您从哪里下载的)?
-
我在这里使用了本教程:curl.haxx.se/libcurl/c/Using-libcurl-with-SSH-support-in-Visual-Studio-2008.pdf 我甚至下载了相同的版本在与 Visual Studio C++ 2008 相同的环境中,为了不发生任何冲突而需要的东西中,除了 SSL 之外,它与其他所有东西都可以正常工作。它甚至没有显示错误,只是空白,就像它甚至没有尝试发出请求并继续执行代码一样。
-
我认为这是一个重复的帖子:other post