bekommen Wenn ich von HTTPS mit CodeCurl in C++ - Es kann nicht Inhalt von HTTPS-Antwort erhalten und schreiben Sie es auf die <code>s</code> Variable Daten können nicht von HTTPS
static size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp)
{
((std::string*)userp)->append((char*)contents, size * nmemb);
return size * nmemb;
}
string* NetIO::getUrlContent(string URL) {
CURL *curl;
CURLcode res;
string *s = new string("");
curl = curl_easy_init();
if (curl) {
//curl_easy_setopt(curl, CURLOPT_URL, URL);
curl_easy_setopt(curl, CURLOPT_URL, "https://ya.ru/");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, s);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
return s;
}
zu bekommen Daten versuchen - s
enthält "". Aber wenn ich URL zu HTTP ändere - dieser Code funktioniert sehr gut und s
enthält HTML-Code der Seite.
curl_easy_setopt(curl, CURLOPT_URL, "http://tatarstan.shop.megafon.ru/");
Wie behebt man dieses Problem?
Vielen Dank! ❤
UPDATE: Wenn ich
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
als mein Code hinzufügen, funktioniert gut. Warum kann es nicht ohne CURLOPT_SSL_VERIFYPEER = 0 funktionieren?
Ich habe einige Visual Studio-Lösung. Es enthält 2 Projekt - libcurl, dass mit Einstellungen zusammengestellt:
und zweites Projekt, das auf Libcurl Projekt abhängt:
Welchen Wert hat 'Rückkehr curl_easy_perform'? – hank
I't zurückgegeben CURLE_SSL_CACERT –