`
fonter
  • 浏览: 868123 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

J2ME开发中由WAP网关带来的cookie问题

    博客分类:
  • J2ME
阅读更多

J2ME开发中由WAP网关带来的cookie问题

在之前的产品开发中,遇到一个奇怪的问题,软件在在CMNET下能正常工作,当用了CMWAP时问题出来,后来问题找到了。在CMWAP下,客户端如果带上Cookie,有时会遇到无法正常登录等情况,下面简单介绍其原因及解决办法。

1、 Cookie是如何工作?
一般来说,Cookie通过HTTP Headers实现服务器端与客户端的交互。首先,服务器端在响应中利用Set-Cookie header来创建一个Cookie ,然后,客户端在它的请求中通过Cookie header包含这个已经创建的Cookie,并且返回至服务器,从而完成浏览器的论证。

2、 Cookie的作用
服务器利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的作用,cookie很好地解决了一些问题,但同时也带来一些问题,如WAP网关对Cookie的处理问题。

3、 WAP网关存在的问题
WAP网关存在不少问题,其中之一如开发者最为头疼的问题便是cookie的处理。由于不少低端手机浏览器本身不支持cookie,于是WAP网关越俎代庖担当起此重任--通过网关软件使这些手机支持cookie,此僭越行为导致移动开发者无所适从,具体表现在:

a. 手机上清除cookie后仍有cookie
b. cookie会莫名其妙的丢失或者产生
c. 重复的cookie存在导致生成非法请求Header
应该还有很多很细小的问题让开发者头疼,在互联网上运行好好的机制移到WAP上就会有这样那样的问题,这些问题更多集中在用户登录、权限控制等方面,问题如何解决呢?解决办法是让WAP网关不保存cookie,下面将讲讲在J2ME中如何解决问题。

4、 J2ME如何设置Cookie与Cookie问题处理
J2ME设置Cookie时,通过setRequestProperty 设置Http头信息,代码如下:

HttpConnection hc = (HttpConnection? )(Connector.open(url)); 

hc.setRequestMethod(method); 

hc.setRequestProperty("cookie",cookies); 

 

上面的代码在直接连接互连网时没问题,但在用cmwap连接互连网时却会出现问题,我们以登录为例,有时cookies为空时也能正常登录,通过测试发现WAP网关保存了cookie,为了解决这个问题,我们必须让WAP网关不保存cookie,解决的办法是在HTTP头加上:

hc. setRequestProperty("X-Wap-Proxy-Cookie","none"); 

 

通过测试,问题解决了!

 

说明:移动梦网文档:http://www.monternet.com/download/web0323/wapt02.doc 有这样一段描述

2.5.2  COOKIE规范
1. COOKIE一般情况下存放在用户的手机上,若用户手机不支持COOKIE功能,则WAP网关将协助存储用户COOKIE信息;
2. COOKIE可分为永久性COOKIE和暂时性COOKIE,通过手机与WAP网关的配合,两种COOKIE均可实现,可根据业务的需求选择使用;
3. 暂时性COOKIE的保存时间一般是1小时,可根据业务的需要自行指定;
4. 在游戏、社区类业务中,涉及用户身份识别的信息应使用永久性COOKIE;

        

 导读
手机中的重定向问题及处理 http://fonter.iteye.com/blog/400836
J2ME如何通过cmwap直接访问互连网 http://fonter.iteye.com/blog/400868
安装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

分享到:
评论
9 楼 allenhooo 2010-03-26  
在WAP网关上 实现永久性COOKIE ,如何实现?
8 楼 fonter 2009-06-23  
avar 写道
手机号可用利用飞信的J2ME接口拿。


请问如何利用飞信的j2me接口拿手机号啊?

先看看 J2ME飞信协议分析(初稿) http://fonter.iteye.com/blog/408385
需请求服务入口为http://liveja.amigo.bjmcc.net/transfer.vurl地址,payload为Amigo_J2ME_C11M20_CMCC_Chuping/1.0.18,编码为utf-8,类型为1,然后返回的响应中从第二个字节到第六个字节就是
7 楼 avar 2009-06-23  
手机号可用利用飞信的J2ME接口拿。


请问如何利用飞信的j2me接口拿手机号啊?
6 楼 fonter 2009-06-12  
天机老人 写道

wap是没办法存cookie 还好我们公司与移动合作可以拿到手机号!


手机号可用利用飞信的J2ME接口拿。“wap是没办法存cookie”
你可从http://www.monternet.com/download/web0323/wapt02.doc下载移动梦网的相关文档,里面有这样一段描述:
2.5.2  COOKIE规范
1. COOKIE一般情况下存放在用户的手机上,若用户手机不支持COOKIE功能,则WAP网关将协助存储用户COOKIE信息;
2. COOKIE可分为永久性COOKIE和暂时性COOKIE,通过手机与WAP网关的配合,两种COOKIE均可实现,可根据业务的需求选择使用;
3. 暂时性COOKIE的保存时间一般是1小时,可根据业务的需要自行指定;
4. 在游戏、社区类业务中,涉及用户身份识别的信息应使用永久性COOKIE;
5 楼 天机老人 2009-06-08  
wap是没办法存cookie
还好我们公司与移动合作可以拿到手机号!
4 楼 fonter 2009-06-01  
sharong 写道

那么也就是j2me的cookie和手机本身支持的cookie不是一回事?

是的
3 楼 sharong 2009-06-01  
那么也就是j2me的cookie和手机本身支持的cookie不是一回事?
2 楼 fonter 2009-06-01  
sharong 写道

有一个问题不解,既然很多低端手机不支持cookie功能,那lz的论点4、 J2ME如何设置Cookie与Cookie问题处理 是不是就不能支持那些低端手机了?

主要是以前手机浏览器不支持COOKIE,网关帮忙保存COOKIE,和J2ME的COOKIE没关系,如果以前手机支持J2ME,那也能支持COOKIE。现在的手机用J2ME软件时如果用到COOKIE时,有时网关也会帮保存COOKIE的。
1 楼 sharong 2009-06-01  
有一个问题不解,既然很多低端手机不支持cookie功能,那lz的论点4、 J2ME如何设置Cookie与Cookie问题处理 是不是就不能支持那些低端手机了?

相关推荐

    J2ME开发 J2ME开发 J2ME开发

    在J2ME开发中,开发者通常会使用集成开发环境(IDE),如NetBeans、Eclipse或JBuilder,这些工具提供了代码编辑、调试和打包应用的功能。编写完代码后,需要通过模拟器或实际设备进行测试。 "J2ME开发.pdf"可能包含...

    J2ME开发大全(非常经典)

    资源管理是J2ME开发中的关键问题,因为移动设备通常拥有有限的存储空间和电池寿命。开发者需要学习如何有效地管理和加载图像、音频和数据文件,以减少内存占用并提高性能。 此外,书中还会讲解J2ME的安全模型,包括...

    J2ME开发详解工具篇 pdf

    在J2ME中,应用程序称为MIDlet套件,由一个或多个MIDlets(J2ME应用程序的主要执行单元)和相关的资源文件组成。每个MIDlet套件都有一个MIDlet-Manifest文件,包含了关于MIDlet套件的元数据,如版本、名称和权限...

    j2me开发教程全集

    Java 2 Micro Edition(J2ME)是一种针对嵌入式设备和移动设备的Java平台,主要用于开发手机应用、智能家电控制、游戏等。本"j2me开发教程全集"涵盖了J2ME开发的核心概念、技术和实践案例,是学习和掌握J2ME编程的...

    j2me开发精解pdf03(完整版)

    这本书的"完整版"意味着它涵盖了J2ME开发的所有核心概念和技术,包括基础理论、实战案例以及常见问题的解决方法。 J2ME开发主要包括以下关键知识点: 1. **J2ME架构**:J2ME由配置(Configurations)、配置文件...

    J2ME开发大全

    **J2ME开发大全** Java 2 Micro Edition(J2ME)是Java平台的一个子集,主要用于...同时,随着移动技术的发展,虽然现在J2ME的使用不如过去广泛,但其背后的编程思想和解决问题的方式依然对现代移动开发有着启示作用。

    J2ME开发教程及笔记

    在J2ME中,如JSR-118(MIDP 2.0)、JSR-135(J2ME多媒体API)等,扩展了平台功能。 ### 10. 应用部署 J2ME应用通常通过WAP、OTA(Over-The-Air)或USB连接部署到设备上,JAD(Java Application Descriptor)文件...

    j2me开发环境配置

    **J2ME 开发环境配置详解** Java 2 Micro Edition(J2ME)是一种轻量级的Java平台,主要用于移动设备、嵌入式系统和其他有限资源的设备。对于初学者来说,配置J2ME开发环境可能显得有些复杂,但通过以下几个步骤,...

    Eclipse 搭建j2me开发环境

    在IT行业中,Java 2 Micro Edition (J2ME) 是一种专门用于开发移动设备和嵌入式系统的Java平台。Eclipse作为一个广泛使用的开源集成开发环境(IDE),支持多种编程语言,包括Java。本教程将详细介绍如何利用Eclipse...

    j2me 开发工具的使用

    在J2ME开发中,选择合适的开发工具至关重要,因为它们能够帮助开发者高效地创建、测试和调试应用程序。本文将详细介绍如何使用J2ME开发工具进行应用程序开发。 **1. 环境搭建** 首先,我们需要安装Java ...

    J2ME开发文档(全)

    J2ME由配置(Configurations)和 profiles(Profiles)组成,配置定义了运行环境的最低需求,如CLDC(Connected Limited Device Configuration)适用于内存和处理能力有限的设备;而profiles则进一步定义了特定类型...

    j2me开发精解pdf01(完整版)

    《J2ME开发精解》是一本专注于Java Micro Edition(J2ME)技术的详细教程,旨在帮助读者全面掌握在小型设备和嵌入式系统上进行应用程序开发的技能。J2ME是Java平台的一个子集,特别设计用于资源有限的移动设备,如...

    J2ME 开发简介.pdf

    文档中详细规定了WAP网关与在线服务器之间的接口要求,以及Java无线服务平台与在线服务器的接口细节。这些接口的设计确保了数据的高效传输和业务的顺利开展。同时,安全要求部分强调了数据加密、用户隐私保护和防止...

    j2me开发框架介绍

    J4ME-开源的 UI Logger 项目是一个 J2ME 应用程序开发包,它包括一个 UI 框架、一个日记框架用于帮助调试因不同品牌手机的差异而产生的问题。 5. OpenBaseMovil OpenBaseMovil 是一个 J2ME 应用程序开发框架,包括...

    J2ME开发的小游戏

    "是男人就下一百层"是一款经典的游戏,其源码基于J2ME开发,体现了J2ME在游戏编程中的应用。 1. J2ME架构:J2ME由配置(Configurations)和 profiles(Profiles)组成。配置定义了设备的基本硬件特性,如内存和...

    J2ME开发环境配置方法

    这些环境变量将帮助你在开发过程中更好地管理和调用J2ME WTK中的库文件。 ##### 3.2 集成开发环境 (IDE) 的选择与配置 J2ME开发通常可以使用各种集成开发环境,如Eclipse、NetBeans、JBuilder等。这里以MyEclipse...

    j2me 中文教程 开发环境 J2ME语言

    本教程首先介绍了 j2me 开发体系,然后深入各个MIDP2.0 API,最后是搭建平台的知识。 第一章 “J2ME 技术概述”让你在学习J2ME 以前知道什么是J2ME。本章介绍了J2ME 平 台的体系结构和MIDlet 生命周期的概念。为以后...

    java 建立j2me开发环境

    安装过程中,确保勾选"Java ME"相关的组件,这样IDE会包含J2ME开发所需的插件。 3. **安装Java SDK** J2ME开发需要Java Standard Edition(Java SE)的SDK。访问Oracle官网,下载并安装最新版本的Java SDK。安装...

Global site tag (gtag.js) - Google Analytics