Синхронный режим.GetLastError
= 0, WinHttpQueryDataAvailable
само возвращает ИСТИНА (т.е. ОК), но количество байтов для чтения = 0
Есть идеи, что это значит?Обычно он работает нормально (чтение потока JPEG с камеры), но иногда застревает здесь (что приводит к повторному подключению кода).
Согласно MSDN, WinHttpQueryDataAvailable
не должен был возвращаться: «Если сеанс синхронный, запрос ожидает, пока данные не станут доступными».
Извлечение кода здесь:
g_HSession = WinHttpOpen( L"Jet", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0 );
ResultsOk = WinHttpSendRequest(
hRequest,
WINHTTP_NO_ADDITIONAL_HEADERS,
0, WINHTTP_NO_REQUEST_DATA, 0,
0, 0);
// End the request.
if (ResultsOk)
{
ResultsOk = WinHttpReceiveResponse( hRequest, NULL );
DWORD BytesToRead = 0;
if (WinHttpQueryDataAvailable( hRequest, &BytesToRead ))
{
if (BytesToRead) // THIS IS SOMETIMES 0 - seems wrong to me
{
if (WinHttpReadData( hRequest, pReadPos, min(BytesToRead, (unsigned)SizeRemaining), &NumRead ))
{
...etc!