0

我的 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); 

但也没有成功。

任何人都知道我做错了什么?

谢谢,埃里克

4

2 回答 2

1

您需要在循环中不断调用 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.
}
于 2009-08-17T10:18:38.937 回答
0

它应该是:

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.
}
于 2009-10-01T10:17:43.323 回答