-
-
[求助]wininet类遇到不解,请教诸位
-
发表于: 2007-8-20 19:24 4089
-
用CInternetFile::Read读取,本来7k的文件,最后1k CInternetFile::Read就不返回了,
(前面几k都好的,用winsock32 将请求包(send)http协议内容置成和wininet方式相同,下载同一目标文件也成功的)
反复试了几次 都是最后1k不返回了
非常不解,谢谢指点下
代码如下
try
{
CInternetSession mySession("myDownloader",1,INTERNET_OPEN_TYPE_DIRECT);
CHttpConnection* myConnection=mySession.GetHttpConnection((LPTSTR)(LPCTSTR)m_szIP,
(INTERNET_PORT)INTERNET_DEFAULT_HTTP_PORT);
CHttpFile* myHttpFile=myConnection->OpenRequest(HTTP_VERB_GET,szGet,0,1,(const char **)&myAccept,
"HTTP/1.1");
myHttpFile->AddRequestHeaders("mydown: 111",
HTTP_ADDREQ_FLAG_ADD|HTTP_ADDREQ_FLAG_REPLACE,11);
myHttpFile->SendRequest("Connection: close",17);
HANDLE hFile=CreateFile((LPTSTR)(LPCTSTR)m_szPath,GENERIC_WRITE,FILE_SHARE_WRITE,0,
CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
UINT i=myHttpFile->Read(szBuf,1024);
DWORD dwWriten=0;
while(i>0)
{
WriteFile(hFile,szBuf,i,&dwWriten,0);
i=myHttpFile->Read(szBuf,1024);
}
CloseHandle(hFile);
myHttpFile->Close ;
myConnection->Close;
mySession.Close ;
}
catch (CInternetException* pEx)
{
//catch errors from WinInet
}
(前面几k都好的,用winsock32 将请求包(send)http协议内容置成和wininet方式相同,下载同一目标文件也成功的)
反复试了几次 都是最后1k不返回了
非常不解,谢谢指点下
代码如下
try
{
CInternetSession mySession("myDownloader",1,INTERNET_OPEN_TYPE_DIRECT);
CHttpConnection* myConnection=mySession.GetHttpConnection((LPTSTR)(LPCTSTR)m_szIP,
(INTERNET_PORT)INTERNET_DEFAULT_HTTP_PORT);
CHttpFile* myHttpFile=myConnection->OpenRequest(HTTP_VERB_GET,szGet,0,1,(const char **)&myAccept,
"HTTP/1.1");
myHttpFile->AddRequestHeaders("mydown: 111",
HTTP_ADDREQ_FLAG_ADD|HTTP_ADDREQ_FLAG_REPLACE,11);
myHttpFile->SendRequest("Connection: close",17);
HANDLE hFile=CreateFile((LPTSTR)(LPCTSTR)m_szPath,GENERIC_WRITE,FILE_SHARE_WRITE,0,
CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
UINT i=myHttpFile->Read(szBuf,1024);
DWORD dwWriten=0;
while(i>0)
{
WriteFile(hFile,szBuf,i,&dwWriten,0);
i=myHttpFile->Read(szBuf,1024);
}
CloseHandle(hFile);
myHttpFile->Close ;
myConnection->Close;
mySession.Close ;
}
catch (CInternetException* pEx)
{
//catch errors from WinInet
}
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- [求助]wininet类遇到不解,请教诸位 4090
- [求助]kernel32.dll等系统dll基地址为什么会改变『已解决』 5925
- 关于线程的疑问 4065
- [建议]增开手机软件逆向、加密、汉化专区 4653
- 关于“用汇编写的浏览器”好象邮箱里没有了 4446
看原图
赞赏
雪币:
留言: