- 浏览: 626011 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (448)
- 字符串相关 (16)
- Struts2页面显示 (15)
- Hibernate错误记录 (6)
- linux命令 (2)
- java项目测试 (5)
- 个人作品 (10)
- hibernate应用 (15)
- struts1 (7)
- 数据库(除了hibernate) (42)
- J2ME/WAP (37)
- servlet/jsp (49)
- java桌面应用+java综合 (14)
- 服务器配置,报错解决 (24)
- Myeclipse配置,抛错解决 (8)
- linux (18)
- JavaScript+jquery+ajax (45)
- div css 页面设计 (16)
- 互联网综合运营 (14)
- 编程工具类 (3)
- 论文 报告 文献 (14)
- PHP (26)
- struts2 (9)
- spring (1)
- 我的IT生活 (14)
- Resin (6)
- java项目记录 (14)
- https安全 (11)
- 支付技术 (3)
最新评论
-
yihaijunyxr:
很好呀,我好久没用iteye了,今天找出两个帐号(yihaij ...
c/c++的监听tmlisten启动缓慢解决 -
yihaijun:
好像这不算是技术博客,是工作博客
c/c++的监听tmlisten启动缓慢解决 -
ml365:
后来还优化了webservice的前置框架,不用cxf,用了另 ...
c/c++的监听tmlisten启动缓慢解决 -
Jayliuying:
有点晚哈 但是也支持一下 楼主
java相关论文的参考文献【转】 -
gqsunrise:
...
我是项目经理,我的项目管理日记【20120229】
众所周知,CMWAP是一个网关,同时又是一个代理服务器,我们只知道
J2ME这样写是没有问题的
假设我请求的地址是http://www.uc.cn/a.do?url=http://www.iteye.com
- httpConn = (HttpConnection) Connector.open(Common.stringAppend("http://10.0.0.172
- a.do?url=http://www.iteye.com", 3, true);
- if (aProxy != null) {
- httpConn.setRequestProperty("X-Online-Host", "www.uc.cn);
- }
httpConn = (HttpConnection) Connector.open(Common.stringAppend("http://10.0.0.172
/a.do?url=http://www.iteye.com", 3, true);
if (aProxy != null) {
httpConn.setRequestProperty("X-Online-Host", "www.uc.cn);
}
这样写,对于WTK,Nokia S40的处理机制。他们转换成Soket后是这么写的
- SocketConnection socket =
- (SocketConnection) javax.microedition.io.Connector.open("socket://10.0.0.172:80");
- OutputStream os = socket.openOutputStream();
- os.write(toByte("GET /a.do?url=http://www.iteye.com HTTP/1.1\r\n"));
- os.write(toByte("Host: 10.0.0.172\r\n"));
- os.write(toByte("X-Online-Host: www.uc.cn\r\n\r\n"));
SocketConnection socket =
(SocketConnection) javax.microedition.io.Connector.open("socket://10.0.0.172:80");
OutputStream os = socket.openOutputStream();
os.write(toByte("GET /a.do?url=http://www.iteye.com HTTP/1.1\r\n"));
os.write(toByte("Host: 10.0.0.172\r\n"));
os.write(toByte("X-Online-Host: www.uc.cn\r\n\r\n"));
网关对上面写法的处理并不能达到你的期望。
对于Socket层来说,我们应该处理成一个标准的代理方式,只有这样,才能达到我们期望的结果。
- SocketConnection socket =
- (SocketConnection) javax.microedition.io.Connector.open("socket://10.0.0.172:80");
- OutputStream os = socket.openOutputStream();
- os.write(toByte("GET http://10.0.0.172/a.do?url=http://www.iteye.com HTTP/1.1\r\n"));
- os.write(toByte("Host: 10.0.0.172\r\n"));
- os.write(toByte("X-Online-Host: www.uc.cn\r\n\r\n"));
SocketConnection socket =
(SocketConnection) javax.microedition.io.Connector.open("socket://10.0.0.172:80");
OutputStream os = socket.openOutputStream();
os.write(toByte("GET http://10.0.0.172/a.do?url=http://www.iteye.com HTTP/1.1\r\n"));
os.write(toByte("Host: 10.0.0.172\r\n"));
os.write(toByte("X-Online-Host: www.uc.cn\r\n\r\n"));
这样写,就能达到我们想要的结果,而且这也是代理服务器的标准写法。
从上面的一些数据分析,我猜想移动网关的处理方式是:
我们以http://10.0.0.172/a.do?url=http://www.uc.cn/ 的方式进行处理
处理步骤
1. 获取host字段,J2ME的HttpConnection send header是host: 10.0.0.172,
那么移动先分析此字段。
2. 如果Host字段是10.0.0.172, 那么会去查找X-Online-Host字段,并且代理发送的时候把Host植替换成X-Online-Host的植,
如果非10.0.0.172,则直接走HTTP标准的代理方式。
3. 如果Host字段是10.0.0.172, CMWAP还会分析URI(/a.do?url=http://www.uc.cn/)。如果你的URI里面带有http://关键字的话
那么问题就会出现了,它会认为http://是host具备的字段,因此它会分析http://www.uc.cn并且把host后面的字符传当成URI。
最终导致了你请求以http://10.0.0.172/a.do?url=http://www.uc.cn/ 变成了请求以http://10.0.0.172/了,服务一般会return
500 内部错误。
具体大家可以编写想过的代码试试
发表评论
-
什么是WAP网关?
2011-10-17 17:09 10151. 什么是WAP网关? WA ... -
判断用户通过手机访问wap还是电脑直接访问
2011-10-17 16:29 1989首先说最根本的解决 ... -
wap的全面解析!!
2011-10-17 16:29 18121. 开发WAP软件需要哪 ... -
j2me library failed to get library information[转]
2010-12-11 21:59 1163出現過類似問題,我是每次都用的run as...->ru ... -
在无线J2ME设备上实现超文本传输协议【转】
2010-12-11 11:27 758随着越来越多手提电 ... -
J2ME使用Socket通过cmwap接入点访问安全HTTPS 2【转】
2010-12-11 11:26 1260新建一个Midp应用程序,在startApp中加入以下代码: ... -
J2ME使用Socket通过cmwap接入点访问安全HTTPS1 【转】
2010-12-11 11:25 1400这个问题是在我升级J2ME版XHTML浏览器的时候被引入的,我 ... -
J2ME无线联网技术中的HTTP连接[转]
2010-12-11 11:24 861import java.io.ByteArrayOutputS ... -
wml教程 中文手册
2010-12-11 01:02 902http://www.g168.net/txt/wml/ ... -
j2me结合j2ee实现用户登陆功能-2【转】
2010-12-11 00:41 948服务器代码:LoginServlet:package co ... -
j2me结合j2ee实现用户登陆功能【转】
2010-12-11 00:40 847手机客户端代码:LoginForm:package com ... -
独立WAP交友网站趋势分析
2010-12-10 19:28 974从互联网开始,交友网 ... -
什么是WAP?wap技术简介(转)
2010-12-10 19:25 974程序员都在讨论Wireless(无线)技术,也就是常说到的WA ... -
j2me游戏开发:控制飞机移动(转)
2010-12-10 19:01 9111. 飞机plane是一个标准的plane。由三桢画面组成,: ... -
j2me游戏开发:工具类的完善(转)
2010-12-10 19:00 933虽然我们有了midp2.0的支持,但是有时还是需要一些辅助工具 ... -
J2ME程序教程,程序+讲解,很好的入门教程(转载) 【2】
2010-12-10 18:59 723J2ME RPG游戏边学边做(二) 1、public vo ... -
J2ME程序教程,程序+讲解,很好的入门教程(转载) 【1】
2010-12-10 18:58 1120J2ME RPG游戏边学边做(一) 笔者以前是做j2ee的 ... -
J2ME内存优化(转载)
2010-12-10 18:58 873Out momory 一阵天旋地转 ... -
PngMate使用教程2(转)
2010-12-10 18:57 862下面我们来换一张图片,街头霸王Ken,这张gif的帧数比较多, ... -
PngMate使用教程1(转)
2010-12-10 18:56 1311PngMate使用教程 JAVA手机网[www.cnjm.n ...
相关推荐
【J2ME联网不同运营商网络方案】 在移动应用开发领域,J2ME(Java Micro Edition)扮演了重要的角色,尤其在网络通信方面。随着3G网络的普及,中国移动、联通、电信三大运营商为J2ME应用提供了丰富的网络环境。本文...
在Java 2 Micro Edition (J2ME)平台上开发应用程序时,常常会遇到用户需要等待联网操作或线程执行完毕的情况,比如数据下载、文件上传等。这种情况下,为用户提供一个可视化的进度条能够显著提高用户体验,让用户...
在J2ME中,联网功能对于创建能够与服务器进行交互的应用程序至关重要。本文将详细介绍如何使用J2ME的通用联网框架来开发联网应用。 首先,MIDP(Mobile Information Device Profile)是J2ME的一个子集,它定义了...
3. 异常处理:学会如何捕获和处理程序运行时可能出现的错误。 4. 多线程:理解线程的概念,知道如何创建和管理并发执行的任务。 然而,J2ME不涉及J2SE中的某些特性,如JDK命令行工具、AWT和Swing图形库,因为它们在...
在J2ME开发中,开发者通常会使用集成开发环境(IDE),如NetBeans、Eclipse或JBuilder,这些工具提供了代码编辑、调试和打包应用的功能。编写完代码后,需要通过模拟器或实际设备进行测试。 "J2ME开发.pdf"可能包含...
【J2ME手机基于服务器的网络象棋游戏源代码】是一种专门为移动设备设计的网络棋类游戏实现,它利用Java 2 Micro Edition (J2ME) 技术,让玩家能够在手机上与其他在线用户对战。J2ME是Java平台的一个轻量级版本,主要...
9. **问题排查与优化**:对于开发者来说,解决问题和优化代码是必不可少的技能。教程会提供一些常见错误的解决方案,并分享性能优化的技巧。 10. **进阶话题**:除了基础内容,教程可能还会涉及KVM(Java Virtual ...
10. **错误处理和调试**:源码将展示如何在J2ME环境中处理异常和进行调试,这对于任何开发者都是宝贵的实践经验。 通过研究这个"j2me经典游戏源码",你可以深入了解J2ME的编程模型,掌握在有限资源设备上构建可扩展...
**J2ME弱联网开发详解** 在移动通信领域,Java Micro Edition(J2ME)曾是为小型设备,如手机,提供应用程序开发的主要平台。在那个时代,由于网络条件限制,弱联网技术对于实现有限的网络功能至关重要。本文将深入...
随着 j2me 的普及,出现了许多开源框架,旨在简化开发过程,提高开发效率。下面将介绍这些框架,並分析它们的特点和功能。 1. EasyMF 简易 J2ME 开发框架 EasyMF 是一个 J2ME 开发框架,目标是设计一个简单、稳定...
对于初学者而言,这是一个很好的实践项目,不仅可以学习到基础的J2ME知识,还能锻炼编程思维和解决问题的能力。而"j2me_plane.rar"中的源代码正是这样一个实例,值得下载研究,以加深对J2ME游戏开发的理解。
音乐的控制,rms的操作类,java字符串解析 将字符串解析成字符数组,java进度条实例模板,j2me中将对象转换成字节数组的方法,j2me联网测试,j2me多线程的应用实例,j2me Socket通信例子 客户端,服务器端
然而,在使用 Eclipse 这样的集成开发环境(IDE)进行 J2ME 应用开发的过程中,开发者可能会遇到无法调试的问题。本文将详细介绍如何解决 J2ME 在 Eclipse 中无法调试的问题,并提供一系列实用的操作步骤。 #### 二...
8. **性能优化**:Android设备性能各异,移植时需注意内存管理和性能优化,避免在Android上出现J2ME中的性能问题。 9. **中间件引擎**:如描述中的“实现J2ME接口的游戏引擎”,可能是为了简化移植过程,通过这样的...
对于蓝牙联网五子棋,我们可能需要用到 MIDP(Mobile Information Device Profile)配置和 CLDC(Connected Limited Device Configuration)配置,这两个是J2ME中最常见的组合,用于开发具有用户界面和网络连接功能...
"midpng-javadoc-final"这个文件名可能指的是MIDP PNG图像处理相关的API文档,对于理解如何在J2ME环境中处理图像和图形操作至关重要。通过深入学习和实践,开发者能够熟练掌握J2ME API,构建出高效且用户体验良好的...
《快速转化J2ME程序为Android程序》 随着Android智能手机的普及,许多开发者面临的问题是如何将原有...然而,开发者仍需对J2ME和Android平台的差异有所了解,以便更好地适应Android环境,并处理可能遇到的兼容性问题。
5. **错误处理**:在发送过程中可能出现各种错误,如网络问题、权限问题等,需要捕获并处理这些异常。 在WTK(Wireless Toolkit)环境下,开发者可以使用内置的模拟器来测试短信发送功能,而在Myeclipse中,...
**J2ME教材:J2ME&Gaming中文版** J2ME,全称为Java 2 Micro Edition,是Java平台的一个子集,主要用于嵌入式设备和移动设备,如手机、智能手表等。这个“J2ME&Gaming中文版”教材主要针对的是Java在游戏开发领域的...
"j2me游戏.rar"很可能是包含了一系列使用J2ME技术开发的游戏资源包。在本文中,我们将深入探讨J2ME游戏开发的关键知识点。 一、J2ME概述 J2ME由Java ME规范定义,它提供了多种配置和框架,如MIDP(Mobile ...