论坛首页 移动开发技术论坛

J2ME如何通过cmwap直接访问互连网

浏览 8691 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-03   最后修改:2009-06-15

1、 移动网关的作用
a)移动网关的主要作用是提高访问速度。因为客户请求的数据存于代理服务器的硬盘中,因此下次这个客户或其它客户再请求相同目的站点的数据时,就能直接从代理服务器的硬盘中读取,代理服务器起到了缓存的作用,但缓存却给开发人员造成障碍,如cookie缓存问题等。
b)获取手机用户数据,如手机号码等

在中国,中国移动为了一些特殊的需要,开发手机软件时需设置网关代理,这样却给开发带来不便。

2、J2me如何跨过网关
在J2ME网络编程中,一般需要设置CMWAP代理的方式连接网络,连接的代码和直接连接有所不同,下面是示例:
例如你需要访问的地址为:

http://www.test.com/login/loginServlet 

HttpConnection http = (HttpConnection)Connector.open("http://10.0.0.172:80/login/loginServlet"); 

http.setRequestProperty("X-Online-Host","www.test.com"); 

 

这种做法容易和手机的APN产生冲突,当用户不清楚cmwap或cmnet的连接方式时,会造成连网失败等问题,影响用户体验。更方便的方法可以用

 

HttpConnection http = (HttpConnection)Connector.open(("http://www.test.com/login/loginServlet");

 

这样方式(直接方式),实际手机能自动为程序设置代理,我们无需做更复杂地处理。

注:有些手机确实需要像例子那样设置。
      已在6120C,E71,P1C,7500手机测试通过。

 

导读
手机中的重定向问题及处理 http://fonter.iteye.com/blog/400836
J2ME开发中由WAP网关带来的cookie问题 http://fonter.iteye.com/blog/399105
安装JAD时提示JAD无效原因之一 http://fonter.iteye.com/blog/400888
J2ME网络交互之优化 http://fonter.iteye.com/blog/405137
解决Eclipse无法调试J2ME程序的配置方法 http://fonter.iteye.com/blog/405697

J2ME模拟器加载RMS时突然失效的原因 http://fonter.iteye.com/blog/407576

J2ME飞信协议分析(初稿) http://fonter.iteye.com/blog/408385

   发表时间:2009-06-11  
10.0.0.172
这个是移动的网关IP吧?
0 请登录后投票
   发表时间:2009-06-12  
cqllang 写道

10.0.0.172 这个是移动的网关IP吧?

嗯,是的
0 请登录后投票
   发表时间:2009-06-16  
CMWAP方式可以写成那样,CMNET必须要先连移动的网关吧?
0 请登录后投票
   发表时间:2009-06-16  
CoxZhang 写道

CMWAP方式可以写成那样,CMNET必须要先连移动的网关吧?

我目前都是写成这样的HttpConnection http = (HttpConnection)Connector.open(("http://www.test.com/login/loginServlet"); 用CMWAP可以联上网
0 请登录后投票
   发表时间:2009-07-06  
想问下 怎么取得访问的地址返回的数据呢··
例如我要查询一个号码的归属地,怎么取得返回后的信息呢···?
0 请登录后投票
   发表时间:2009-07-06  
hemin108 写道
想问下 怎么取得访问的地址返回的数据呢··
例如我要查询一个号码的归属地,怎么取得返回后的信息呢···?

用HTTP请求时,一般通过POST或GET的方式向服务端请求数据,服务端得到请求后会向客户返回相应的信息,可用InputStream和OutputStream 读取流和写入流!即是你向OutputStream写入号码,再从InputStream读取返回信息。
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics