InternetReadFile - проблема чтения длиного файла
От: jacque  
Дата: 18.10.05 14:39
Оценка:
Доброго времени суток.
Приложение посылает xml-запросы серверу и получает их в таком же виде.
Имею возможность видеть лог сервиса на сервере, ко мне уходит "большой"(24к) ответ, InternetReadFile читает маленький кусочек и все, а когда я закрываю handle запроса вываливаеться исключение win32.
Код
        if (!HttpSendRequest(hRequest, NULL, 0, (LPVOID)postData, postDataSize)) //шлю хмл
        {
            ret = EHTTPERROR_CreateHTTPRequestFailed;
            break;
        }

        if (!HttpEndRequest(hRequest, NULL, 0, 0))
        {
            DWORD d = GetLastError();

            ret = EHTTPERROR_CreateHTTPRequestFailed;
            break;
        }
        // read answer
        char buff[ 1024 ];
        int recived = 0;
        while (1)
        {
            DWORD nread = 0;
            if (!InternetReadFile(hRequest, buff, 1024, &nread)) //читает все время 1736 байт от длиного ответа
            {
                ret = EHTTPERROR_CreateHTTPRequestFailed;
                break;
            }
            if (nread)
            {
                int oldSize = recived;
                recived += nread;
                memcpy(recvData + oldSize, buff, nread);
            }
            else
                break;
        }

        recvData[ recived ] = 0;

        break;
    }

    if (hRequest)
        InternetCloseHandle(hRequest); //исключение, так как не все дочитал


Если кто сталкивался с таким, прошу помочь.
Заранее спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.