J2ME之家

匿名投稿 投稿指南 RSS订阅 J2ME通告:
搜索: 您的位置主页>Symbian>网络编程>

Series 60 2nd/3rd上处理HTTP通讯中302跳转的方法

2008-8-20 17:00:53 来源:j2me之家整理 责任编辑:本站整理 【 点击: 我要投稿 [进入论坛]

[J2ME之家-Symbian网络编程]在使用Symbian提供的HTTP引擎时发现,在网络返回302跳转消息时获取跳转的URL为空(”Location”),这种情况在Series 60 2nd和3rd都存在。要解决这个问题需要首先了解一下HTTP引擎本身提供过滤机制(Filter),这种机制可以为实际应使用中的各种HTTP消息响应机制提供支持,通过这个机制可以为HTTP引擎添加/删除某个过滤器,当然我们也可以实现一个人的过滤器。之所以取到的跳转URL为空,就是因为HTTP引擎默认情况添加了302跳转的过滤器,如果程序中需要一个人处理的话就需要把这个过滤器从当前的HTTP会话中删除掉,下面的代码演示了删除过滤器的方法: void CHTTPEngine::ConstructL() { // Open RHTTPSession with default protocol ("HTTP/TCP") TRAPD(err, iSession.OpenL()); if(err != KErrNone) { // Most common error; no access point configured, and session creation // leaves with KErrNotFound. _LIT(KErrMsg, "Cannot create session. Is internet access point configured?"); _LIT(KExitingApp, "Exiting app."); CEikonEnv::Static()->InfoWinL(KErrMsg, KExitingApp); User::Leave(err); } //Remove the redirect filter. RStringPool pool = iSession.StringPool(); iSession.FilterCollection().RemoveFilter( pool.StringF( HTTP::ERedirect, RHTTPSession::GetTable() ) ); ………………………… } 使用上面的方法去掉HTTP会话中的跳转过滤后就可以正常响应和处理302跳转了。该代码在Series 60 2nd和3rd平台上测试通过。

Tag:通讯 方法 处理 HTTP 过滤器 可以 引擎 机制 使用 删除
责任编辑:本站整理
  • 用户名: (新注册)密码: 匿名:  请文明参与讨论,禁止漫骂攻击。
    评论总数: [ 查看全部 ] 网友评论
    关于我们 - 联系我们 - 广告服务 - 法律声明 - RSS订阅 - 网站地图 - 返回顶部