`
ericbaner
  • 浏览: 177030 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转】中移动cmwap连网时的http头字段X-Online-Host设置

 
阅读更多

众所周知,在国内的GPRS网络环境下,用户以cmwap接入点上网的情况居多。cmwap是中国移动的GPRS代理上网,因此在创建连接的时候,必须采用代理的方式进行连接。
假设我连接的URL为:http://wap.uc.cn/;
在标准代理中,是这样子的:
Conection to 10.0.0.172:80
GET http://wap.uc.cn/ HTTP/1.1
Host: wap.uc.cn

但是在J2ME中,程序并不能控制到TCP层,因此中国移动定义了一个私有协议字段:X-Online-Host。从移动要求的规范来看,我们只需要这样即可正常进行联网:
Conection to 10.0.0.172:80
GET / HTTP/1.1
Host: 10.0.0.172
X-Online-Host: wap.uc.cn
实际上对于程序来说,我们只需要将原来连接的url及http header中的host替换成10.0.0.172,并添加一个http header字段:X-Online-Host,值为原来的host。然后继续采用直连的方式即可正常进行联网。

这样问题就来了,很明显这是一个不标准的代理协议,不标准的地方在于:
GET / HTTP/1.1
因为在标准的代理协议规范中,定义了请求的必须是完整的URI。
这个问题在平常并不会出现,但是当请求的URL比较特殊时,问题就很明显了。
假设我连接的URL为:http://wap.baidu.com/logo.gif?img=http://wap.uc.cn/uc.png
使用X-Online-Host协议的联网:
Conection to 10.0.0.172:80
GET /logo.gif?img=http://wap.uc.cn/uc.png HTTP/1.1
Host: 10.0.0.172
X-Online-Host: wap.baidu.com
这样的请求到达移动网关之后,会被误发至http://wap.baidu.com/uc.png。但是实际上我们想要请求的是http://wap.baidu.com/logo.gif (?之后的表示变量)。
因为,移动网关实际上就是一个HTTP的代理服务器,它对于X-Online-Host协议是这样处理的:
截取请求头中的URL字段:
如果没有http://字段的话,则将该字段作为相对URI,同X-Online-Host字段进行补全;
如果有http://字段的话,则将该字段作为绝对URI,将host替换为X-Online-Host的值。

分享到:
评论

相关推荐

    MTK平台用Socket实现HTTP请求总结.doc

    2. CMWAP请求中需要额外设置`Host`和`X-Online-Host`字段,`Host`指向实际服务器,`X-Online-Host`指向网关。 在实际开发过程中,开发者可以通过调试工具,如在MTK模拟器的`soc_send()`函数处设置断点,来观察和...

    iPhone4S iPhone5设置移动cmWap接入点(无限流量卡越狱方法二)

    ### iPhone4S、iPhone5 设置移动 cmWap 接入点详解 #### 一、引言 随着智能手机的普及和技术的发展,人们对移动互联网的需求日益增长。对于早期的 iPhone 用户而言,如何合理利用套餐内的流量成为了关注的重点之一...

    Android手机设置cmwap上网

    Android 手机设置CMWAP 接入点  设置--- 无限控件---移动网络设置---接入点名称----再按菜单---选择新apn  步,设置CMNET 上网APN  新建 APN  1.名称:cmnet  2.APN:cmnet  3.APN 类型:default  就只...

    cmwap卡上移动3G,代理设置方法!

    ### cmwap卡上移动3G,代理设置方法详解 #### 一、背景介绍 随着移动互联网技术的发展,cmwap作为一种特殊的接入方式,在中国移动3G网络中占有重要地位。cmwap卡能够实现低成本甚至免费访问特定服务,对于追求性价...

    安卓移动网络设置

    在安卓操作系统中,移动网络设置是一项基础且重要的功能,它涉及到手机如何连接到互联网以及接收彩信等服务。本文将详细介绍如何在中国移动和中国联通两大运营商的网络环境下,配置安卓设备的cmnet、cmwap和彩信接入...

    基础电子中的Android手机设置cmwap上网

    Android 手机设置CMWAP 接入点  设置--- 无限控件---移动网络设置---接入点名称----再按菜单---选择新apn  第一步,设置CMNET 上网APN  新建 APN  1.名称:cmnet  2.APN:cmnet  3.APN 类型:default  ...

    cmwap接入点设置

    CMWAP接入点设置是指在中国移动网络环境下,为了通过手机访问互联网,特别是通过GPRS(General Packet Radio Service)服务,需要进行的一种特定网络配置。CMWAP和CMNET是两个不同的接入点名称(APN),它们都属于...

    CMWAP和CMNET 的主要区别与适用范围

    中国移动对 CMWAP 的限制主要表现在 CMWAP 接入时只能访问 GPRS 网络内的 IP(10.*.*.*),而无法通过路由访问 Internet。这就决定了它在应用上所受到的限制。CMWAP 浏览 Internet 上的网页就是通过 WAP 网关协议或...

    CMWAP配置描述文件

    总的来说,CMWAP配置描述文件是移动设备用户便捷接入特定网络环境的工具,它简化了复杂的手动设置过程,尤其在面临特定网络限制时,如中国的移动网络环境。威锋技术组作为知名的苹果设备技术社区,其提供的CMWAP配置...

    Android网络Http通信(及cmwap处理)

    请注意,CMWAP可能还需要处理HTTP头信息中的`Proxy-Connection`和`Accept-Encoding`字段,以适应CMWAP的特殊需求。 总结,Android应用进行HTTP通信时,可以选择使用`HttpURLConnection`或`HttpClient`,它们各有优...

    IPHONE3 解决CMWAP上网方法

    总的来说,尽管iPhone 3系列设备不直接支持CMWAP,但通过手动配置APN、修改系统设置以及遵循“cmwap.txt”文件中的指导,用户可以克服这一限制,实现CMWAP的连接。这个过程需要一定的技术知识,但对于那些希望节省...

    关于cmwap网络切换

    在移动通信领域,CMWAP(China Mobile Wireless Application Protocol)是一种专为中国移动用户设计的数据连接方式,主要用于手机访问互联网或WAP网站。本教程将详细探讨如何在Android系统中进行CMWAP网络的切换和...

    windows mobile 调用CMWAP 上网 代码

    在Windows Mobile平台上进行移动网络开发时,调用CMWAP上网是常见的需求,尤其是在GPRS(General Packet Radio Service)环境下。CMWAP是China Mobile WAP的缩写,是一种专为移动设备设计的网络接入协议,它允许用户...

    cmwap无限量卡3G上网

    - 华为 ET128 设置:在设备管理器中,修改“HUAWEI Mobile CMCC MSS”和“HUAWEI Mobile CMCC Modem”的属性,添加初始化命令“at+cgdcont=1,"ip","cmwap",以确保使用 CMWAP 接入点。 - 中兴 MU351/MU350 设置:...

    移动G3客户端(CMNET CMWAP皆可)

    标题“移动G3客户端(CMNET CMWAP皆可)”指的是中国移动提供的3G网络服务,G3客户端是用于连接这两种网络方式(CMNET和CMWAP)的应用程序。CMNET是一种更开放的接入方式,通常提供全互联网访问,而CMWAP则是针对移动...

    WAP、WIFI、CMWAP、CMNET上网方式的区别与联系.pdf

    - 使用CMWAP设置时,通过手机上网访问WAP网站和部分WWW网站不会产生额外费用,但通过代理服务器访问全互联网可能会产生CMNET流量,特别是在手机作为Modem供电脑上网时。 - 用户应谨慎管理CMNET的接入设置,避免误...

    cmwap转cmnet

    cmwap.exe可以使qq通过cmwap上网时不会掉线。根据地方不同,cmwap可能会有不同情况,有的地方限制严格,cmwap.exe不一定有用。 不过网友使用后反馈的结果来看,80%都可以实现程序的功能。 源代码很早的时候...

    Android手机怎么用CMWAP上网?.doc

    3. **移动网络设置**:在“无线和网络”菜单中,选择“移动网络”或者“蜂窝网络”选项。 4. **接入点名称**:接着,找到并进入“接入点名称”(APN)设置。在这里,您可以管理和创建不同的网络接入点。 5. **新建...

Global site tag (gtag.js) - Google Analytics