2013-12-25 2 views
0

Я Curl 7.2.9 и проверил-подключение так:Curl - проверка соединения

Вот пример:

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 
} 

Теперь я перешел к скручиванию-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); 

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

ответ

0

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

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

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

+0

удаление CURLOPT_POST и CURLOPT_WRITEFUNCTION не помогло - такая же ошибка возникает. URL-адрес «google.com». Я просто хочу проверить, доступно ли подключение к Интернету – amplifier

+0

, какую именно ошибку вы получаете? Кроме того, он работает с Google с более ранней версией? –

+0

Я получаю ошибку 23 CURLE_WRITE_ERROR. Конечно, он работает с более ранней версией, как я уже говорил выше. – amplifier

Смежные вопросы