文档详情

HTTP服务器上断点下载文件.doc

发布:2017-12-14约2.04万字共16页下载文档
文本预览下载声明
HTTP服务器上断点下载文件 ?从HTTP服务器上下载一个文件有很多方法,“热心”的微软提供了 WinInet 类,用起来也很方便。当然,我们也可以自己实现这些功能,通过格式化请求头很容易就能实现断点续传和检查更新等等功能 。 连接主机 格式化请求头 设置接收,发送超时    ?????????要想从服务器下载文件,首先要向服务器发送一个请求。HTTP 请求头由若干行字符串组成。下面结合实例说说 HTTP 请求头的格式。假设要下载 /index.html 这个网页 ,那么请求头的写法如下: 第1行:方法,请求的内容,HTTP协议的版本 下载一般可以用GET方法,请求的内容是“/index.html”,HTTP协议的版本是指浏览器支持的版本,对于下载软件来说无所谓,所以用1.1版 “HTTP/1.1”; “GET /index.html HTTP/1.1” 第2行:主机名,格式为“Host:主机” 在这个例子中是:“Host:” 第3行:接受的数据类型,下载软件当然要接收所有的数据类型,所以: “Accept:*/*” 第4行:指定浏览器的类型 有些服务器会根据客户服务器种类的不同会增加或减少一些内容,在这个例子中可以这样写: “User-Agent:Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)” 第5行:连接设置 设定为一直保持连接:“Connection:Keep-Alive” 第6行:若要实现断点续传则要指定从什么位置起接收数据,格式如下: “Range: bytes=起始位置 - 终止位置” 比如要读前500个字节可以这样写:“Range: bytes=0 - 499”;从第 1000 个字节起开始下载: “Range: bytes=999 -” 最后,别忘了加上一行空行,表示请求头结束。整个请求头如下: GET /index.html HTTP/1.1 Host: Accept:*/* User-Agent:Mozilla/4.0 (compatible; MSIE 5.00; Windows 98) Connection:Keep-Alive 下面用例子看看如何进行断点的下载吧 //?DownloadFile.h:?interface?for?the?CDownloadFile?class. // ////////////////////////////////////////////////////////////////////// #if?!defined(AFX_DOWNLOADFILE_H__E9A59779_BEF9_4A78_8D0E_ED8C9498E07C__INCLUDED_) #define?AFX_DOWNLOADFILE_H__E9A59779_BEF9_4A78_8D0E_ED8C9498E07C__INCLUDED_ #if?_MSC_VER??1000 #pragma?once #endif?//?_MSC_VER??1000 #define?NOTIFY_MSG_WPARAM_GENDOWNFILEID????????????????0x01 #define?NOTIFY_MSG_LOW_WPARAM_FULLSIZE????????????????0x10 #define?NOTIFY_MSG_LOW_WPARAM_CURRENTSIZE????????????0x20 #define?NOTIFY_MSG_LOW_WPARAM_DOWNSIZE????????????????0x30 #define?NOTIFY_MSG_LOW_WPARAM_DOWNSPEED????????????????0x40 class?CDownloadFile?? { public: ????BOOL?OpenRedirectHttpURL(CString?strOldLocation,CInternetSession?cSession); ????BOOL?DownLoadFile(LPCTSTR?lpFileURL,LPCTSTR?lpSaveFile); ????CDownloadFile(); ????virtual?~CDownloadFile(); ????LPCTSTR?GetSavedFileName()?{?return?m_strSaveToFile;} ????LPCTSTR?GetDownURL()?{?return?m_strFileURL;} public: ????WORD?GenFileID(); ????void?RegisterNotifyWindow(DWORD?dwThr
显示全部
相似文档