Symbian (Http DownLoad) Http 引擎下载实现
2010-02-08 03:06:00 来源:WEB开发网Symbian(Http DownLoad)Http引擎下载
前面二篇blog介绍了关于接入点的相关情况
今天让我们来看看下载是如何处理的
其实在SYMBIAN平台实现下载方式较多
比如直接用系统提供的HTTP引擎
比如有SOCKET模拟HTTP来实现
今天我们主要谈谈用平台的HTTP引警是如何实现的
也会在接下来的通信编程中聊聊socket模拟HTTP下载.
其实WIKI上给我们提供了一个关于HTTP下载的很好的例子.
并且网上也有很多关于这方面的资料.
我将主要谈谈比较关键的地方希望对后来的学习的朋友有一些帮助.
其实要完成整个HTTP下载官方提供的例子是不够的.
官方的例子只能让我们了解API的使用流程.
我们还需要处理各种异常,比如超时,比如跳转等等.
我们还要站在用户的角度去处理比如走WAP代理,比如断点续传等等.
好让我们少费话了直接进入主题吧!!嘎嘎!!!
首先介绍以下三个主要类:
//处理HTTP事物中的相关事件
//比如响应消息头,消息体,各种异常处理等
MHTTPTransactionCallback
//HTTP会话,建立客户端于内核的会话
RHTTPSession
//在会话的基础上建立下载事物
//一个http session可以有多个Transaction
//要实现多个事物同时进行必须要建立多个http session
RHTTPTransaction
经过上述基本介绍后,让我们看看具体的实现吧!!
//GET 请求
void CWebClientEngine::HTTPGetL(const TDesC8& aUri)
{
iDownloadSize = 0;
bHttpGetOrPost = ETrue;
//自己设置计时器,为超时作准备
StartTimer(30);
//为了二次连接,在WAP代理时首次连接会有移动拦截页回来
//这样可以直接把当前连接再请求一次,即可以解决问题.
iSecondUrl.Copy(aUri);
TUriParser8 uri;
uri.Parse(aUri);
#ifndef _DEBUG//不在DEBUG的情况下
if (bIAPIsWap)//如果是WAP接入点,需要设置WAP代理
{
//中国特色,不要报怨.
//改变不了社会,就加代码.嘎嘎!!
TBuf8<20> aProxy8(_L8("10.0.0.172:80"));
更多精彩
赞助商链接