Re[4]: Как правильно получить ответ от HTTP-сервера?
От: sushko Россия  
Дата: 25.04.16 08:18
Оценка:
Здравствуйте, jahr, Вы писали:

J>Скорее всего — при отправке данных указана неверная длина контента, тогда сервер не отвечает пока не получит того, что ему по его мнению не хватает. Длина контента указывается в соответствующем хедере. Проще всего установить какой-нибудь сниффер типа Wireshark, в котором посмотреть, что именно отправляется на сервер и сравнить с тем, что отправляет вариант с curl. Но то, что сервер не отвечает — хорошая заявка на то, что в запросе указана неверная длина данных запроса.


Ага, спасибо, я проверю.

J>Вот здесь ошибка :

J>int iUtf8Length = 0;
J>pFile->SendRequestEx(iUtf8Length-1);

Между этими двумя операторами стоИт:

char *utf8Contents = AnsiToUtf8((char*)(LPCTSTR)sXml, &iUtf8Length);

, кот. возвращает в OUT-параметре эту самую iUtf8Length. AnsiToUtf8() добавляет ноль в конец преобразованной строки, и отправлять этот ноль в HTTP просто незачем, поэтому в SendRequestEx() передается iUtf8Length-1.
Бесплатный генератор отчетов для программ на C/C++
http://www.oxetta.com
Отредактировано 25.04.2016 9:47 sushko . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.