Symbian 中的 Http 开发详解
2010-03-24 17:22:00 来源:WEB开发网当事务准备启动时,客户端调用RHTTPTransaction::SubmitL()表示请求应该被提交了。
...
// submit the transaction
trans.SubmitL();
// Start the scheduler, once the transaction completes or is cancelled //on an error the scheduler will be stopped in the event handler
CActiveScheduler::Start();
5 接收事务事件
当客户端从HTTP服务器收到数据,事件也会被生成并通过会话过滤器传回到客户端。事件到达客户端时,HTTP会唤醒事务回调对象,也即 MHFRunL (RHTTPTransaction aTransaction, const THTTPEvent &aEvent)方法。
在该方法中可通过以下方式利用事务响应取得响应状态码和文本描述:
case THTTPEvent::EGotResponseHeaders:
{
RHTTPResponse resp = aTransaction.Response();
TInt status = resp.StatusCode();
RStringF statusStr = resp.StatusText();
下面的代码则是使用THTTPHdrFieldIter类循环取得头部域数据:
RHTTPResponse resp = aTrans.Response();
RStringPool strP = aTrans.Session().StringPool();
RHTTPHeaders hdr = resp.GetHeaderCollection();
THTTPHdrFieldIter it = hdr.Fields();
TBuf
TBuf
while (it.AtEnd() == EFalse)
{
// Get the name of the next header field
RStringTokenF fieldName = it();
RStringF fieldNameStr = strP.StringF(fieldName);
// Check it does indeed exist
THTTPHdrVal fieldVal;
if (hdr.GetField(fieldNameStr,0,fieldVal) == KErrNone)
{
...
// Display realm for WWW-Authenticate header
RStringF wwwAuth = strP.StringF(HTTP::EWWWAuthenticate, RHTTPSession::GetTable());
if (fieldNameStr == wwwAuth)
{
// check the auth scheme is 'basic'
RStringF basic = strP.StringF(HTTP::EBasic,RHTTPSession::GetTable());
- ››Symbian S60 SocketConnection参数
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››Symbian乏力:2010年诺基亚悲情大事记
- ››Symbian三大升级开启2011年新战略
- ››Symbian/Android/iOS/WM安装包对比
- ››Symbian一个活动对象的测试例子
- ››Symbian ListBox控件
- ››Symbian下自动切换SDK的批处理代码
- ››Symbian 3 版的 Swype 输入法正式上架
- ››Symbian中的设计模式
- ››Symbian S60平台JAVA开发环境搭建步骤
- ››Symbian自定义控件—如何实现跑马灯效果
更多精彩
赞助商链接