我想用程序下载指定的网页,用的是
CInternetSession 和 CInternetFileDWORD dLength = file->GetLength();
获得的dLength有时与实际长度相差较大,为什么?
如何获得准确的长度,就象FlashGet那样?
CInternetSession 和 CInternetFileDWORD dLength = file->GetLength();
获得的dLength有时与实际长度相差较大,为什么?
如何获得准确的长度,就象FlashGet那样?
解决方案 »
- 宏的使用
- 一个EXE程序执行时,进程和线程的变化?内存有啥变化?
- VC++中用picture控件或其他控件如何打开多格式的图片?
- 关于在MFC下计时显示精度的问题
- 怎样才能使声明的数组的序号从1 开始??
- 从今天开始学vc,我发誓一定要学好vc.
- 我是新手,清高首赐教:在对话框窗口中,有一个文本框,一个按钮,如何利用按钮更新文本框?
- odbc连接mysql,头文件报错
- 菜鸟向大家求教:atoi(const char*)函数怎么总是出错?
- 滚动条消息 OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
- vc和matlab的连接问题,高手指教
- 使用VC做键盘精灵的两个问题。
send(... GET 网页 ...)
send(页面信息)
然后就接收数据,数据先包含一个返回头,然后才是网页数据,具体这样假如我下载以下页面
http://www.csdn.net/Develop/Read_Article.asp?Id=4816send(...GET /Develop/Read_Article.asp?Id=4816 HTTP/1.1...)
send(
Accept: */*\r\n
Accept-Language: zh-cn\r\n
Accept-Encoding: gzip, deflate\r\n
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)\r\n
Host: www.csdn.net\r\n
Connection: Keep-Alive\r\n
Cookie: ASPSESSIONIDCCABSCAD=JACFBJLDAKFIELKFCHFDNPHN\r\n
\r\n )这样服务器会传回一个确认信息加网页数据,确认信息如下:
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Mon, 26 Apr 2004 00:50:38 GMT
X-Powered-By: ASP.NET
Content-Length: 15980
Content-Type: text/html
Cache-control: private长度信息就在这里了
这是一个解决办法,不过用CHttpFile更简单.
httpfile->QueryInfo(HTTP_QUERY_CONTENT_LENGTH,szLength,&dwSizeOfRq)).大家共同进步.