Я использовал 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);
Но мне не нужно ничего писать. Есть идеи?
Функция Manily Curl * CURLOPT_WRITEFUNCTION * используется для периодического (определенного в обратном вызове) определенного объема данных для обработки большого файла. Я не вижу никаких оснований использовать это с вашей завитой целью, независимо от версии.
Удалите из кода код * CURLOPT_POST * (по умолчанию его 0) и * CURLOPT_WRITEFUNCTION *, и он должен работать. Если это не так, то вы делаете что-то неправильно в других местах вашего кода!
Кроме того, если вы проверяете, соответствует ли URL-адрес или нет, то использование CURL в порядке. Но только для проверки соединения вы можете проверить, включен или нет порт 80 домена.