Curl простой запрос https ничего не возвращает C ++ - PullRequest
3 голосов
/ 19 марта 2012

Я использую 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 в Google, но он ничего не возвращает только потому, что он начинается с https. и если я уберу «s» из https, он будет работать нормально: «http://www.google.com.br" показывает результат нормально. Что мне здесь не хватает? Я использую пример из cURL. Я пытался с другими сайтами, и то же самое случилось. : / как https://www.facebook.com

Кстати, если вы, ребята, знаете, как хранить содержимое веб-страницы в строке, я был бы рад узнать.

Спасибо заранее. :)

1 Ответ

5 голосов
/ 20 марта 2012

Этот простой пример работает для меня:

#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, этот пост может быть также полезен для вас:

Сборка libcurl с поддержкой SSL в Windows

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...