Curl - проверка соединения

0

Я использовал Curl 7.2.9 и проверил соединение следующим образом:

Вот пример:

curl = curl_easy_init();
bool result = false;
if(curl)
{
    curl_easy_setopt(curl, CURLOPT_URL, m_checkConnectionUrl);
    CURLcode res = curl_easy_perform(curl);
}
if(res != CURLE_OK)
{

}
else
{
    // connection is available
}

Теперь я переключился на curl-7.33.0 и получил ошибку * CURLE_WRITE_ERROR *, и чтобы заставить его работать, я должен закодировать его как

std::string output;
char* encodedUrl = curl_easy_escape(curl, m_checkConnectionUrl, 0);
curl_easy_setopt(curl, CURLOPT_POST, 0);
curl_easy_setopt(curl, CURLOPT_URL, encodedUrl);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writeMemoryCurlCallbackStub);
CURLcode res = curl_easy_perform(curl);

Но мне не нужно ничего писать. Есть идеи?

Теги:
curl

1 ответ

0

Функция Manily Curl * CURLOPT_WRITEFUNCTION * используется для периодического (определенного в обратном вызове) определенного объема данных для обработки большого файла. Я не вижу никаких оснований использовать это с вашей завитой целью, независимо от версии.

Удалите из кода код * CURLOPT_POST * (по умолчанию его 0) и * CURLOPT_WRITEFUNCTION *, и он должен работать. Если это не так, то вы делаете что-то неправильно в других местах вашего кода!

Кроме того, если вы проверяете, соответствует ли URL-адрес или нет, то использование CURL в порядке. Но только для проверки соединения вы можете проверить, включен или нет порт 80 домена.

  • 0
    удаление CURLOPT_POST и CURLOPT_WRITEFUNCTION не помогло - возникает та же ошибка. URL-адрес "google.com". Я просто хочу проверить, есть ли подключение к интернету
  • 0
    какую именно ошибку вы получаете? Кроме того, это работает с Google с более ранней версией?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню