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());
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››HttpHandler生成随机码、验证码
- ››Http 403错误重现实验及解决方法
- ››开发者眼中的Windows Phone和Android
- ››Symbian S60 SocketConnection参数
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››Symbian乏力:2010年诺基亚悲情大事记
- ››Symbian三大升级开启2011年新战略
- ››Symbian/Android/iOS/WM安装包对比
- ››Symbian一个活动对象的测试例子
更多精彩
赞助商链接