(1) .由于无线设备所能支持的网络协议非常有限,仅限于HTTP,Socket,UDP等几种协议,不同的厂家可能还支持其他网络协议,但是,MIDP 无线论坛[http://www.j2me.com.cn/bbs]
1.0规范规定,HTTP协议是必须实现的协议,而其他协议的实现都是可选的。因此,为了能在不同类型的手机上移植,我们尽量采用HTTP作为网络连接的首选协议,这样还能重用服务器端的代码。但是,由于HTTP是一个基于文本的效率较低的协议,因此,必须仔细考虑手机和服务器端的通信内容,尽可能地提高效率。无线论坛[http://www.j2me.com.cn/bbs]
对于MIDP应用程序,应当尽量做到:无线论坛[http://www.j2me.com.cn/bbs]
1.发送请求时,附加一个User-Agent头,传入MIDP和自身版本号,以便服务器能识别此请求来自MIDP应用程序,并且根据版本号发送相应的相应。无线论坛[http://www.j2me.com.cn/bbs]
无线论坛[http://www.j2me.com.cn/bbs]
无线论坛[http://www.j2me.com.cn/bbs]
3.由于无线网络连接速度还很慢,因此有必要将某些数据缓存起来控制工程网版权所有,可以存储在内存中控制工程网版权所有,也可以放到RMS中。无线论坛[http://www.j2me.com.cn/bbs]
对于服务器端而言www.cechina.cn,其输出响应应当尽量做到:无线论坛[http://www.j2me.com.cn/bbs]
1. 无线论坛[http://www.j2me.com.cn/bbs]
明确设置Content-Length字段,以便MIDP应用程序能读取HTTP头并判断自身是否有能力处理此长度的数据,如果不能,可以直接关闭连接而不必继续读取HTTP正文。无线论坛[http://www.j2me.com.cn/bbs]
无线论坛[http://www.j2me.com.cn/bbs]
2. 无线论坛[http://www.j2me.com.cn/bbs]
服务器不应当发送HTML内容,因为MIDP应用程序很难解析HTML,XML虽然能够解析,但是耗费CPU和内存资源,因此,应当发送紧凑的二进制内容,用DataOutputStream直接写入并设置Content-Type为application/octet-stream。无线论坛[http://www.j2me.com.cn/bbs]
无线论坛[http://www.j2me.com.cn/bbs]
3. 尽量不要重定向URL,这样会导致MIDP应用程序再次连接服务器www.cechina.cn,增加了用户的等待时间和网络流量。无线论坛[http://www.j2me.com.cn/bbs]
无线论坛[http://www.j2me.com.cn/bbs]
4. 无线论坛[http://www.j2me.com.cn/bbs]
如果发生异常,例如请求的资源未找到,或者身份验证失败,通常,服务器会向浏览器发送一个显示出错的页面,可能还包括一个用户登录的Form,但是,向MIDP发送错误页面毫无意义,应当直接发送一个404或401错误,这样MIDP应用程序就可以直接读取HTTP头的响应码获取错误信息而不必继续读取相应内容。无线论坛[http://www.j2me.com.cn/bbs]
无线论坛[http://www.j2me.com.cn/bbs]
5. 无线论坛[http://www.j2me.com.cn/bbs]
由于服务器的计算能力远远超过手机客户端,因此,针对不同客户端版本发送不同响应的任务应该在服务器端完成。例如,根据客户端传送的User-Agent头确定客户端版本。这样,低版本的客户端不必升级也能继续使用。无线论坛[http://www.j2me.com.cn/bbs]
MIDP的联网框架定义了多种协议的网络连接,但是每个厂商都必须实现HTTP连接CONTROL ENGINEERING China版权所有,在MIDP 无线论坛[http://www.j2me.com.cn/bbs]
2.0中还增加了必须实现的HTTPS连接。因此,要保证MIDP应用程序能在不同厂商的手机平台上移植,最好只使用HTTP连接。虽然HTTP是一个基于文本的效率较低的协议,但是由于使用特别广泛,大多数服务器应用的前端都是基于HTTP的Web页面,因此能最大限度地复用服务器端的代码。只要控制好缓存