首页
社区
课程
招聘
[求助]wininet类遇到不解,请教诸位
发表于: 2007-8-20 19:24 4089

[求助]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
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//