curl_easy_perform возвращает CURLE_WRITE_ERROR, но я ничего не буду писать

Я написал этот простой код для проверки сетевого подключения или наших приложений для iOS:

int CL_Network::checkConnectionInt1(){

CURL *curl;
CURLcode res;
curl = curl_easy_init();

if (curl) {

curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com");

res = curl_easy_perform(curl);

curl_easy_cleanup(curl);
return res;

}

curl_easy_cleanup(curl);
return -1;

}

Наш тест в порядке, возвращает 0, когда Wi-Fi включен, но рецензент Apple возвращает 23 (CURL_WRITE_ERROR) с включением или отключением Wi-Fi.

Рецензент рассказывает нам о странном поведении других (учитывая, что Wi-Fi включен)

  • iPod touch с iOS 5.1 возвращает 0, с тем же Wi-Fi, где iPhone5 с iOS 6.3 возвращает 23
  • iPhone 5 с iOS 6.3 запуска пошаговой отладки возвращает 0 (я не знаю, произошло ли это только один раз или всегда)

Есть ли у вас какие-либо предложения?

Последнее замечание, подробный вывод curl_easy_perform

  • О подключении () к порту 80 www.google.com (# 0)
  • Попытка 173.194.35.20 …
  • связано
  • Подключен к www.google.com (173.194.35.20) порт 80 (# 0)

    GET / HTTP / 1.1 Хост: www.google.com Принять: /

< HTTP / 1.1 302 найдено < Место нахождения: http://www.google.it/ <
Cache-Control: приватный < Content-Type: text / html; кодировка = UTF-8 <
Set-Cookie:
PREF = J = 08f8ea131f5d39dd: ФФ = 0: ТМ = 1367680782: LM = 1367680782: S = at5IyKNTpeoFFnif; истекает = понедельник, 04 мая 2015 года 15:19:42 по Гринвичу; Путь = /; домен = .google.com <
Set-Cookie:
NID = 67 = uPKHTXNtVuYy4QOwVHstK4NzMGZcDssYW …..;
истекает = вс, 3 ноября 2013 г. 15:19:42 мск; Путь = /; домен = .google.com;
HttpOnly < P3P: CP = «Это не политика P3P! Смотрите
http://www.google.com/support/accounts/bin/answer.py?hl=en&ответ = 151657
для получения дополнительной информации.» < Дата: сб, 04 мая 2013 15:19:42 GMT < Сервер: GWS <
Длина контента: 218 < X-XSS-защита: 1; Режим = Блок <
X-Frame-Options: SAMEORIGIN <
302 Перемещено Документ
переехал Вот.
* Соединение № 0 с хостом www.google.com осталось без изменений
* Закрытие соединения № 0 2013-05-04 17: 19: 42.183
testcurl [1468: c07] checkConnection 1: 0

2

Решение

Вам также нужно написать обратный вызов

size_t CurlWriteCallback(char* buf, size_t size, size_t nmemb, void* up)
{
TRACE("CURL - Response received:\n%s", buf);
TRACE("CURL - Response handled %d bytes:\n%s", size*nmemb);

// tell curl how many bytes we handled
return size*nmemb;
}

// ...int CL_Network::checkConnectionInt1(){

CURL *curl;
CURLcode res;
curl = curl_easy_init();

if (curl) {

curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &CurlWriteCallback);
curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com");

res = curl_easy_perform(curl);

curl_easy_cleanup(curl);
return res;

}

curl_easy_cleanup(curl);
return -1;

}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]