首页 |连击传奇装备 |连击打怪攻略 |连击玩家交流 |连击游戏地图 |连击传奇截图 |韩版连击视频
当前位置: 主页 > 连击玩家交流 >

java me使用设想指导之联网重定向

更新时间:2014-09-24 11:28 来源: http://www.hybiology.com
HTTP 1.1协定答应网页效劳器暂时改观资源的地位,也就是说你拜访的资源正在此外一度地点。那时分效劳器前往的呼应代码是302,而新的地点寄存正在Header中,Header的称号是Location。畸形状况下,存户端阅读器该当指向暂时的拜访地点。然而,挪动终端设施差异很大,正在解决302前往码的时分,设施之间的行止差别很大。 上面的代码能够用于解决重定向成绩,然而正在全体设施中会导以致用顺序出错。 Connection c = (HttpConnection) Connector.open(uri); int status = c.getResponseCode(); String new_uri = c.getHeaderField("Location"); // new_uri is null on some devicesif (status == 302) { c.close(); c = (HttpConnection) Connector.open(new_uri); // Breaks here}因为重定向是HTTP 1.1的特点,那样一切1.1兼容的设施都需求思忖某个成绩。上面引见如哪里理某个成绩。 现实证实正在某些设施上,底层的网络协定栈解决重定向的成绩,302呼应码通知使用顺序外部的解决流水线。使用顺序该当期待直到呼应码等于302。然而有些设施没有能准确地从呼应中解析出Location字段,那样Location字段的形式是null,呼应码存储正在了呼应的形式之中。有经历的工事师会采纳上面的处理方法。 1)解析呼应,正在Location或者许呼应的形式中查找新地点,假如找出的话开放先前的联接,转向新的联接。 2)假如什么也没有找出的话,那样期待10-1000ms,直到形态码从302改变为200。立即解决呼应,当做没有谬误发作。 上面的代码可以很好的处理重定向的成绩,供自己参考和完美。 Connection c = (HttpConnection) Connector.open(uri); int status = c.getResponseCode(); String redirection = httpConnection.getHeaderField("Location");if (status == HttpConnection.HTTP_TEMP_REDIRECT) { if (redirection != null) { // This the standard HTTP 1.1 behaviour, move on to the redirection uri (basically restarting again). } else { // Parse the content of the HTTP response, if any. // Lookup for a "Location" header, if found, set value to the redirection variable if (redirection != null) { // Since location was found, fall back to the standard behaviour. } else { long begin_wait = System.currentTimeMillis(); while (System.currentTimeMillis() - begin_wait sleep(100); response = httpConnection.getResponseCode(); }; if (response == 200) { // Once again we're back on tracks, continue processing as if no error has ever happen } else { // Here we're really hopeless. Either the server did provided a valid redirection uri, // or the device did not preserved it. The best option is probably to fail by throwing an exception. }; }; };} else // Handle other error codes here}; // Handle success here (status == 200) 您还能够理解一下Http协定的底细,http://www.ietf.org/rfc/rfc2616.txt。白文是作者正在浏览SUN的技能作品的时分意译的。您能够经过上面的地点浏览原文,也欢送您意译其余的好作品,单独推进国际Java ME技能的停滞。

上一篇:操盘必读 5月7日证券市面要闻及点评
下一篇:q版rpg页游《三朝喵大乱斗》首测记时


相关文章:

9月正版公布 魅族mx3外型设想专利图暴

2012q4香蕉苹果与谷歌使用商店游览支

    Copyright © 2013 - 2014 http://www.hybiology.com 连击传奇 All Rights Reserved