知识大全 MIDP 1.0 HttpConnection类的robust封装

Posted

篇首语:香花不一定好看,会说不一定能干。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 MIDP 1.0 HttpConnection类的robust封装相关的知识,希望对你有一定的参考价值。

MIDP 1.0 HttpConnection类的robust封装  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

一 NetConnection 简介 转述Matrix上zhengyun_ustc所述 你的HttpConnection是否封装的足够健壮呢?遇到各种情况 你是否有信心应对呢?譬如说 你要请求的Response包实在太大 以至于运营商给你掐了告诉你说超时 譬如说你是不是总要自己写一个线程来专门作连接?譬如说有一些移动运营商设置了caching proxy servers 妨碍了你的测试 为了解决这个问题 一位日本程序员 JAY F 针对MIDP 提供了一种robust的 NetConnection 封装 这个HttpConnnection类负责管理连接并易于使用 二 NetConnection 特性 跨过Proxy server阻碍 一些移动网络放置了代理服务器用来提高访问速度 但是它的cache也成为了开发人员测试/调试程序的一大障碍 NetConnection 类使用一个简单的 request属性将server上的代理功能关闭掉 使用线程分离的连接模式 本类可以使用单线程 多线程两种模式运行 只要设置一个简单的标志即可 支持Http request range 由于服务商在其网络上可能存在一些针对回应数据最大长度的限制 所以 NetConnection 类提供了构造request URL的功能使回应数据分为多个数据包 从而去除了前面的限制 三 netConnection是如何实现的? netConnection类结构分析 此类实现了Runnable接口 其运行模式支持多线程模式 当前只能由一个线程使用资源 其它线程wait 此类使用了一些静态成员变量

  //当前只能由一个线程使用singleton         private static NetConnection singleton = new NetConnection();        private static HttpConnection Conn;        private static String url;        private static String method;        private static byte[] data;                        private static String contentType;                private static long lowRange;                private static long highRange;                private static boolean disableProxy;                private static boolean detached;                private static byte[] response;

类方法

  //线程run方法public void run()//当前运行的线程执行完毕后 通报给其它的由于等待资源而wait状态的线程private synchronized void forceNotify() //当资源正在被其它线程使用时 当前线程进入wait状态private synchronized void forceWait()//关闭连接private static void severConnection()

由于使用了这些static成员变量 所以一些操作方法需要同步(synchronized) netConnection核心代码解析 netConnection类的实现思想很简单 就是设置一些request属性和对于GET方法构造一个特殊的URL 更重要的是其作者对协议的深入理解 严谨的代码风格值得吾辈学习 研究 这也是本人分析其核心代码的一大原因 cha138/Article/program/Java/hx/201311/26660

相关参考

知识大全 1.0gbps是多少兆

1.0gbps是多少兆1Gbps就是1000Mbps,这只是网卡的速度,而不是宽带的速度。Gbps是交换机数据交换能力的单位,也叫交换带宽。GBPS以太网是IEEE802.3以太网标准的扩展,传输速度

知识大全 手机开发面试经历

自我介绍什么是嵌入式是做什么的你要应聘的是JME还是ANDROID程序员怎么看JME和ANDROID的情况你开发游戏的优势MIDP与的区别老师怎么教JME的你喜欢的沟通方式你讨厌的沟通方式你对一个公司

知识大全 Spring-OSGI 1.0 M3 中文手册

Spring-OSGI1.0M3中文手册  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  关于he

知识大全 经测试ADO.NET 2.0竟然比1.0要慢

经测试ADO.NET2.0竟然比1.0要慢  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  镜子里

知识大全 ASP.NET MVC 1.0发布了

ASP.NETMVC1.0发布了  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNETMV

知识大全 技术高手讲评ASP.NET MVC 1.0

技术高手讲评ASP.NETMVC1.0  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最近正在考

知识大全 我的世界手机版1.0的种子码,不要0.9.5的。 要完整的

我的世界手机版1.0的种子码,不要0.9.5的。要完整的lzsb三个村庄是分开的,但是附近有三个村庄,刚出生在洞穴上面,下洞穴会发现好多黄金,也包含了中等数量的钻石。mimi往水井底部的石头挖,可以发

知识大全 高级图像处理图像I/O API RC 1.0

高级图像处理图像I/OAPIRC1.0  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如果你对图

红外天文学

利用天体在波长界于1.0-350微米的红外波段来研究天文现象的天文分之学科。整个红外波段可分为近红外(1.0-5微米)、中红外(5-30微米)和远红外(30-350微米)三个波段。表面温度近于3000

如何生产速冻甘薯产品?

原料选择:选择黄色或紫色种、淀粉含量高的优良鲜食甘薯品种,表皮要光滑,无病斑。  预处理:将挑选、清洗后的甘薯去皮,切分成4厘米×1.0厘米×1.0厘米的细条或1.5厘米×1.5厘米×1.5厘米薯丁;