<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>
[j2me] Nokia S60如何处理302 HTTP状态
<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 450.1pt; HEIGHT: 8.45pt" type="#_x0000_t75" o:hrpct="0" o:hralign="center" o:hr="t"><imagedata src="file:///C:/DOCUME~1/ZHENGY~1.VIC/LOCALS~1/Temp/msohtml1/01/clip_image001.gif" o:title="BD10290_"></imagedata></shape>
历史
Version | Date | Creator | Description |
1.0.0.1 | 2006-7-24 | 郑昀 | 第一稿 |
1 Nokia S60如何处理302HTTP状态
HttpConnection/302/ HTTP_TEMP_REDIRECT
关键词 | 详细描述 |
当用HttpConnection读取远端数据,而远端返回状态码302表示重定向时,继续调用openInputStream来读取输入流将会导致程序崩溃。 此种现象发生在以下机型: Nokia N90/ 6600/6630/6680。 N70不会崩溃但也不会正常运行。 | 根据协议规定,此时的Location头域中保存了你应该重新请求的地址。 请看 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.3 来了解更多关于"302 Found"。 也就是说,此时用HttpConnection.getHeaderField("Location")来得到具体的跳转url,然后重新向新地址发起请求。 代码示范: private HttpConnection open(String url) throws IOException { HttpConnection c; int status = -1; // Open the connection and check for redirects while (true) { c = (HttpConnection) Connector.open(url); // Get the status code, // causing the connection to be made status = c.getResponseCode(); if ((status == HttpConnection.HTTP_TEMP_REDIRECT) || (status == HttpConnection.HTTP_MOVED_TEMP) || (status == HttpConnection.HTTP_MOVED_PERM)) { // Get the new location and close the connection url = c.getHeaderField("location"); c.close(); } else { break; } } // Only HTTP_OK (200) means the content is returned. if (status != HttpConnection.HTTP_OK) { c.close(); throw new IOException("Response status not OK"); } return c; } |
| | |
参考资料1:RFC2616
10.3.3 302 Found
The requested resource resides temporarily under a different URI. Since the redirection might be altered on occasion, the client SHOULD continue to use the Request-URI for future requests. This response is only cacheable if indicated by a Cache-Control or Expires header field.
The temporary URI SHOULD be given by the Location field in the response. Unless the request method was HEAD, the entity of the response SHOULD contain a short hypertext note with a hyperlink to the new URI(s).
If the 302 status code is received in response to a request other than GET or HEAD, the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user, since this might change the conditions under which the request was issued.
Note: RFC 1945 and RFC 2068 specify that the client is not allowed
to change the method on the redirected request. However, most
existing user agent implementations treat 302 as if it were a 303
response, performing a GET on the Location field-value regardless
of the original request method. The status codes 303 and 307 have
been added for servers that wish to make unambiguously clear which
kind of reaction is expected of the client.
参考资料2:Nokia Forum
KVM crashes when reading content with HTTP "302 Found" response on N90 and 6680
分享到:
相关推荐
### 诺基亚 S60 FP1 J2ME UI 开发指南 #### 概述 本文档主要介绍了诺基亚 S60 平台 Java 2 Micro Edition (J2ME) 用户界面(UI)开发的基本原则与实践方法。该文档不仅为开发者提供了详尽的技术指导,还深入探讨了 ...
4. **Nokia S60**:S60是诺基亚推出的一种智能手机平台,基于Series 60用户界面,支持J2ME应用,这表明源码兼容这个平台。 5. **游戏编程基础**:源码中可能涵盖了游戏开发的关键元素,如游戏循环、碰撞检测、动画...
本文将深入探讨基于Nokia S60平台的计算器应用,以及其与J2ME(Java 2 Micro Edition)和Java技术的结合。 首先,Nokia S60,全称为Series 60,是诺基亚推出的一种智能手机操作系统,基于Symbian系统。它为开发者...
**J2ME 合金弹头S60源代码详解** **一、J2ME简介** J2ME(Java 2 Micro Edition)是Java平台的一个子集,主要用于嵌入式设备和移动设备上的应用程序开发,如手机、智能手表、家用电器等。它提供了一个轻量级的运行...
- **诺基亚S40和S60平台**:提供了更丰富的功能和更大的内存,支持更复杂的J2ME应用。 - **摩托罗拉的Java平台**:通常基于MIDP 2.0,提供良好的图形和网络支持,适用于各种类型的应用开发。 6. **学习资源** ...
- **硬件兼容性**:J2ME可以运行在多种硬件平台上,如Nokia S40/S60系列手机。 - **统一的API**:尽管不同制造商可能有自己的扩展API,但是核心API保持一致。 - **平台特有bug**:不同品牌和型号的手机可能存在特定...
"JCKB_S60"可能是游戏的主程序或者特定平台的编译版本,S60是诺基亚的Series 60平台,一种基于Symbian操作系统的智能手机平台,广泛应用于早期的智能手机。 在研究这个J2ME手机游戏源码时,我们可以期待以下几个...
S60V5是诺基亚S60平台的一个重要版本,它增强了对触摸操作的支持,使得像《NOKIA 5800斗地主》这样的触控游戏得以实现。游戏的“完美触摸”特性意味着它已经针对5800的触摸屏进行了优化,确保玩家可以通过轻触、滑动...
6. **Nokia Series 40 / Series 60 SDK**:针对特定手机平台,如诺基亚S40和S60,提供了额外的API和开发工具。 7. **用户界面设计**:J2ME中的用户界面通常是基于文本和简单的图形元素,使用Canvas类可以创建自定义...
在这个场景中,"j2me全屏显示的例子程序代码"是一个专门针对诺基亚S60系统的Java ME应用,旨在实现应用程序在手机屏幕上全屏显示的功能。全屏模式对于游戏或者其他需要沉浸式体验的应用尤其重要,因为它可以消除状态...
常见的J2ME模拟器有Wireless Toolkit (WTK)和Nokia S60 SDK。WTK是一个通用的J2ME模拟器,适用于大多数设备,推荐使用WTK2.5.2版本,因为它相对新且功能齐全。如果你专注于特定平台,如Nokia手机,可以考虑使用nS60_...
4. **事件处理**:J2ME中的键盘和触摸事件通过KeyListener或Command类进行处理,为游戏提供交互性。 5. **性能优化**:由于J2ME运行在资源有限的设备上,所以性能优化至关重要。这包括减少内存消耗、避免不必要的...
在移动设备领域,Java 2 Micro Edition(J2ME)曾是开发游戏和应用程序的重要平台,尤其对于早期的诺基亚S60系列手机来说,J2ME游戏更是占据了重要地位。"j2me_fire_game"是一款专为诺基亚S60设计的解谜游戏,它要求...
在J2ME平台上,textfield设置为phonenumber,在一般的高端点手机,比如塞班s60上都会自动出现查找联系人的选项,而一些比较低端的nokia手机,将textfield里面的号码清空也会出现查找联系人的菜单(如果里面有号码这个...
原作者:亚日。共享出来方便大家。 以下载一张小图片为例子,一个较为简单的HTTP连接的demo。 支持CMNET及CMWAP两种不同的接入方式,以及在CMWAP接入方式下,过滤移动资费页面。在诺基亚 S60 系列真机上测试通过。
个别游戏可能需要特定的模拟器环境才能运行,如S60模拟器对于诺基亚手机游戏的测试。 9. **优化技巧** 由于J2ME设备资源有限,优化代码至关重要。这包括减少内存使用、优化图像加载、使用高效的算法以及合理使用...
在移动设备编程领域,Java 2 Micro Edition(J2ME)曾经是开发手机游戏的重要平台,尤其是对于早期的诺基亚S60系统而言。本篇将围绕“J2ME Alibaba Game SourceCodes”这一主题,深入探讨其中蕴含的技术知识点,帮助...
以下是一个简单的示例,展示了一个在Nokia S60模拟器上运行的MIDlet,用于播放JAR文件内的WAV声音: ```java package sound; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import ...
在移动应用开发领域,J2ME(Java 2 Micro Edition)是早期广泛应用于智能手机和平板电脑的编程平台,尤其在非智能手机时代,如诺基亚S40、S60等设备上,J2ME是主要的开发工具。本主题聚焦于在J2ME环境中进行手机应用...