我正在使用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;
}
例如,此代码只是对Google的https请求,但它不会返回任何内容,因为它以https开头。如果我拿走https的“s”,它就可以正常工作:“http://www.google.com.br”通常会显示结果。我在这里想念的是什么?我正在使用cURL中的示例。 我尝试过与其他网站同样的事情发生了。 :/ like https://www.facebook.com
顺便说一句,如果你们知道如何将网页内容存储在一个字符串中,我很高兴知道。
提前致谢。 :)
答案 0 :(得分:5)
这个简单的例子对我有用:
#include <stdio.h>
#include <curl/curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
/* First set the URL that is about to receive our POST. This URL can
just as well be a https:// URL if that is what should receive the
data. */
curl_easy_setopt(curl, CURLOPT_URL, "https://www.google.co.uk");
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* always cleanup */
curl_easy_cleanup(curl);
}
return 0;
}
我很久以前得到了源代码并构建了库,但我确定在编译源代码之前启用了SSL支持。确保安装了OpenSSL并且(如果您在Linux下工作),您可以正确初始化PKG_CONFIG_PATH
变量。这些是您在执行configure
脚本时指定的两个选项。
--with-ssl=PATH Where to look for OpenSSL, PATH points to the SSL
installation (default: /usr/local/ssl); when
possible, set the PKG_CONFIG_PATH environment
variable instead of using this option
--without-ssl disable OpenSSL
我希望它有所帮助。
如果您使用的是Windows,这篇文章对您也很有用: