- 浏览: 639565 次
- 性别:
- 来自: 广州
-
文章分类
- 全部博客 (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】
新建一个Midp应用程序,在startApp中加入以下代码:
1 SocketConnection conn = null; 2 OutputStream os = null; 3 InputStream is = null; 4 try { 5 // url: https://ebs.95559.com.cn/corporbank/es_logon.jsp 6 conn = (SocketConnection) Connector.open("socket://10.0.0.172:80", Connector.READ_WRITE, true); 7 conn.setSocketOption(SocketConnection.DELAY, 0); 8 conn.setSocketOption(SocketConnection.KEEPALIVE, 300); 9 10 // 发送和回复的请求 11 os = conn.openDataOutputStream(); 12 is = conn.openDataInputStream(); 13 14 // 在此我们使用HTTP 1.0,HTTP 1.1自己还需要处理chunk,比较麻烦 15 String reqStr = 16 "GET https://ebs.95559.com.cn/corporbank/es_logon.jsp HTTP/1.0\r\n" + 17 "Host: ebs.95559.com.cn:443\r\n" + 18 "User-Agent: FelixBrowser\r\n" + 19 "Accept-Charset: utf-8;\r\n" + 20 "Connection: close;\r\n" + 21 "Accept-Language: zh-cn\r\n\r\n"; 22 23 os.write(reqStr.getBytes()); 24 os.flush(); 25 26 System.out.println("Response Stream:"); 27 byte[] buf = new byte[128]; 28 while (true) { 29 int availSize = is.read(buf, 0, buf.length); 30 if (availSize == -1) { 31 break; 32 } 33 System.out.println(new String(buf, 0, availSize)); 34 } 35 } catch (Exception ex) { 36 ex.printStackTrace(); 37 } finally { 38 if (is != null) { 39 try { 40 is.close(); 41 } catch (IOException ex) { 42 ex.printStackTrace(); 43 } 44 } 45 46 if (os != null) { 47 try { 48 os.close(); 49 } catch (IOException ex) { 50 ex.printStackTrace(); 51 } 52 } 53 54 if (conn != null) { 55 try { 56 conn.close(); 57 } catch (IOException ex) { 58 ex.printStackTrace(); 59 } 60 } 61 } 62 |
输出结果:
OK,这就是我们想要的结果。
封装并重构
平时我们用习惯了HttpConnection,对于使用SocketConnection访问HTTP来说,太多的设置和属性拼凑给编码带来了不少麻烦。在完善J2ME-XHTML浏览器时,我将Socket访问HTTP这一块代码封装成一个类SocketHttpConnection,此类继承自HttpConnection,实现了接口方法。
并且,我还构建了一个工厂类,可以通过枚举的方式创建SocketHttpConnection和纯HttpConnection,有工厂创建的类还可以制定是以代理的方式连接还是直连。在此,我将代码贡献出来给大家。下载地址:这里。
几个类之间的关系如下:
使用方法很简单:
1 // 请求地址 2 String url = "https://ebs.95559.com.cn/corporbank/es_logon.jsp"; 3 4 // 连接方式:SocketConnection/HttpConnection 5 byte connType = HttpConnectionFactory.CONNTYPE_SOCKET_HTTP; 6 7 // 是否使用代理及代理地址、端口 8 boolean isUseProxy = true; 9 String proxyHost = "10.0.0.172"; 10 int proxyPort = 80; 11 12 HttpConnection conn = null; 13 InputStream is = null; 14 try { 15 // 调用工厂创建 16 conn = HttpConnectionFactory.getConnection(url, connType, isUseProxy, proxyHost, proxyPort); 17 18 // 像原生HttpConnection一样使用 19 int code = conn.getResponseCode(); 20 System.out.println("Response Code: " + code); 21 22 is = conn.openDataInputStream(); 23 24 System.out.println("Response Stream:"); 25 byte[] buf = new byte[128]; 26 while (true) { 27 int availSize = is.read(buf, 0, buf.length); 28 System.out.println(new String(buf, 0, availSize)); 29 30 if (availSize < buf.length) { 31 break; 32 } 33 } 34 } catch (IOException ex) { 35 ex.printStackTrace(); 36 } 37 |
发表评论
-
什么是WAP网关?
2011-10-17 17:09 10371. 什么是WAP网关? WA ... -
判断用户通过手机访问wap还是电脑直接访问
2011-10-17 16:29 2020首先说最根本的解决 ... -
wap的全面解析!!
2011-10-17 16:29 18401. 开发WAP软件需要哪 ... -
j2me library failed to get library information[转]
2010-12-11 21:59 1187出現過類似問題,我是每次都用的run as...->ru ... -
j2me联网时候对于代理问题可能会出现的错误【转】
2010-12-11 11:30 791众所周知,CMWAP是一个网关,同时又是一个代理服务器,我 ... -
在无线J2ME设备上实现超文本传输协议【转】
2010-12-11 11:27 775随着越来越多手提电 ... -
J2ME使用Socket通过cmwap接入点访问安全HTTPS1 【转】
2010-12-11 11:25 1431这个问题是在我升级J2ME版XHTML浏览器的时候被引入的,我 ... -
J2ME无线联网技术中的HTTP连接[转]
2010-12-11 11:24 873import java.io.ByteArrayOutputS ... -
wml教程 中文手册
2010-12-11 01:02 940http://www.g168.net/txt/wml/ ... -
j2me结合j2ee实现用户登陆功能-2【转】
2010-12-11 00:41 969服务器代码:LoginServlet:package co ... -
j2me结合j2ee实现用户登陆功能【转】
2010-12-11 00:40 875手机客户端代码:LoginForm:package com ... -
独立WAP交友网站趋势分析
2010-12-10 19:28 1017从互联网开始,交友网 ... -
什么是WAP?wap技术简介(转)
2010-12-10 19:25 1011程序员都在讨论Wireless(无线)技术,也就是常说到的WA ... -
j2me游戏开发:控制飞机移动(转)
2010-12-10 19:01 9431. 飞机plane是一个标准的plane。由三桢画面组成,: ... -
j2me游戏开发:工具类的完善(转)
2010-12-10 19:00 958虽然我们有了midp2.0的支持,但是有时还是需要一些辅助工具 ... -
J2ME程序教程,程序+讲解,很好的入门教程(转载) 【2】
2010-12-10 18:59 741J2ME RPG游戏边学边做(二) 1、public vo ... -
J2ME程序教程,程序+讲解,很好的入门教程(转载) 【1】
2010-12-10 18:58 1137J2ME RPG游戏边学边做(一) 笔者以前是做j2ee的 ... -
J2ME内存优化(转载)
2010-12-10 18:58 891Out momory 一阵天旋地转 ... -
PngMate使用教程2(转)
2010-12-10 18:57 889下面我们来换一张图片,街头霸王Ken,这张gif的帧数比较多, ... -
PngMate使用教程1(转)
2010-12-10 18:56 1339PngMate使用教程 JAVA手机网[www.cnjm.n ...
相关推荐
压缩包中的"在J2ME中使用Socket通过cmwap接入点访问安全HTTPS.pdf"文档很可能提供了一个详细的步骤指南,涵盖了以上所述的各个方面。它可能包括了代码示例、配置步骤和可能遇到的问题及其解决方案。对于想要在J2ME...
在这个场景中,我们关注的是J2ME如何实现自动连接到互联网,无论是通过CMWAP还是CMNET这两种常见的GPRS(General Packet Radio Service)接入点。 CMWAP和CMNET是中国移动提供的两种不同的网络接入方式。CMWAP主要...
描述中提到的“包括cmwap和cmnet的请求方式”涉及到中国移动的两种GPRS接入方式。CMWAP(China Mobile Wireless Application Protocol)主要用于WAP浏览,通常经过网关代理,适合数据量小、实时性要求不高的场景。...
在J2ME应用中,选择合适的网络接入点对于数据传输效率和费用控制至关重要。 Record Management System(RMS)是J2ME中的一个数据存储机制,类似于小型数据库。RMS允许开发者创建、读取、更新和删除记录,为应用程序...
嵌入式八股文面试题库资料知识宝典-华为的面试试题.zip
训练导控系统设计.pdf
嵌入式八股文面试题库资料知识宝典-网络编程.zip
人脸转正GAN模型的高效压缩.pdf
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
少儿编程scratch项目源代码文件案例素材-鸡蛋.zip
嵌入式系统_USB设备枚举与HID通信_CH559单片机USB主机键盘鼠标复合设备控制_基于CH559单片机的USB主机模式设备枚举与键盘鼠标数据收发系统支持复合设备识别与HID
嵌入式八股文面试题库资料知识宝典-linux常见面试题.zip
面向智慧工地的压力机在线数据的预警应用开发.pdf
基于Unity3D的鱼类运动行为可视化研究.pdf
少儿编程scratch项目源代码文件案例素材-霍格沃茨魔法学校.zip
少儿编程scratch项目源代码文件案例素材-金币冲刺.zip
内容概要:本文深入探讨了HarmonyOS编译构建子系统的作用及其技术细节。作为鸿蒙操作系统背后的关键技术之一,编译构建子系统通过GN和Ninja工具实现了高效的源代码到机器代码的转换,确保了系统的稳定性和性能优化。该系统不仅支持多系统版本构建、芯片厂商定制,还具备强大的调试与维护能力。其高效编译速度、灵活性和可扩展性使其在华为设备和其他智能终端中发挥了重要作用。文章还比较了HarmonyOS编译构建子系统与安卓和iOS编译系统的异同,并展望了其未来的发展趋势和技术演进方向。; 适合人群:对操作系统底层技术感兴趣的开发者、工程师和技术爱好者。; 使用场景及目标:①了解HarmonyOS编译构建子系统的基本概念和工作原理;②掌握其在不同设备上的应用和优化策略;③对比HarmonyOS与安卓、iOS编译系统的差异;④探索其未来发展方向和技术演进路径。; 其他说明:本文详细介绍了HarmonyOS编译构建子系统的架构设计、核心功能和实际应用案例,强调了其在万物互联时代的重要性和潜力。阅读时建议重点关注编译构建子系统的独特优势及其对鸿蒙生态系统的深远影响。
嵌入式八股文面试题库资料知识宝典-奇虎360 2015校园招聘C++研发工程师笔试题.zip
嵌入式八股文面试题库资料知识宝典-腾讯2014校园招聘C语言笔试题(附答案).zip
双种群变异策略改进RWCE算法优化换热网络.pdf