symbian提供下载文件的方式有好几种,可以使用RHTTPSession 或 更底层的socket来下载文件。这两个方法后面我会具体介绍。但是最方面最好用的还是使用RHttpDownload来处理。
使用RHttpDownload,可以直接把数据保存在文件中。不过,RHttpDownload在二版的FP3之后才开始支持,要是在这版本之前的,只能使用其他方法。
下面我会提取最核心的代码,最快的演示如何下载一个文件。其他相关的下载辅助类,有兴趣的,可以深入研究。
1、头文件:#include <downloadmgrclient.h>
2、库要求:DownloadMgr.lib
3、核心代码片段:
由于下载过程是通过后台处理的,必须提供一个会调接口通知应用层。所以,我们实现下载的类要派生自MHttpDownloadMgrObserver。处理void HandleDMgrEventL (RHttpDownload &aDownload, THttpDownloadEvent aEvent);回调函数。
//CMyHttpEngine.h
//CMyHttpEngine.CPP
在外部调用时,直接如下调用:
这样就实现了把雅虎的主页信息保存在yahoo.txt文件中。这里我是用的简单的办法,下载下来的雅虎信息不是很全,这可能也是RHttpDownload的短处吧,只适合用来下载具体的文件,要下载网页中的信息还是应该使用RHTTPSession 。