Проблема InternetReadFile (ошибка 87 - Неверный параметр) - PullRequest
0 голосов
/ 06 февраля 2009

У меня проблема здесь с InternetReadFile, если я запускаю приложение на компьютере без прокси, приложение работает нормально, но если я пытаюсь использовать компьютер с использованием прокси, я получаю сообщение об ошибке 87 (параметр неверен) .

Вот мой код:

conHandle = InternetOpen("Test", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); 
... 
hFile = InternetOpenUrl(conHandle, url.c_str(), NULL, 0, INTERNET_FLAG_RELOAD, 0);  
... 

if (!InternetReadFile(hFile, buffer, maxBufferSize, &size)) 
{ 
    // error 
} 

И я тоже пытался использовать:

InternetOpen("Test", INTERNET_OPEN_TYPE_PROXY, "proxystr", NULL, 0); 

но безуспешно тоже.

Кто-нибудь знает что-нибудь о том, что я делаю неправильно?

thankz, Erick

Ответы [ 2 ]

1 голос
/ 17 августа 2009

Вы должны продолжать вызывать InternetReadFile в цикле, пока он не вернет TRUE, а количество прочитанных байтов не станет 0. Обычно это означает, как минимум, 2 вызова InternetReadFile.

while ( InternetReadFile( hFile, buffer, maxBufferSize, &size ) == FALSE || size > 0 )
{
   // process buffer contents.
   // for ex: write the contents of buffer to a temp file for example.
}
0 голосов
/ 01 октября 2009

Должно быть:

while (InternetReadFile(hFile, buffer, maxBufferSize, &size) == TRUE || size > 0)
{
   // process buffer contents.
   // for ex: write the contents of buffer to a temp file for example.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...