最近用symfony框架给手机app做后台,发现在中国移动cmwap网络下会出现问题,所有请求都路由到根路径了
左图为原始$_SERVER对象,右图为$request->server对象
由于request_uri被改了,导致任何请求都会被symfony框架路由到根路径
同时少了一个x-original-url请求头
原因在symfony的Request类源码中
可以看到当有x-original-url请求头的时候就直接拿过来当request-uri了,但是中国移动cmwap比较恶心人,传了这个头了但没传对,现在把代码改为
还有框架的启动文件bootstrap.php.cache,里边也有这段代码,同样的改过来就行了
为了从应用中区别两者的定位,中国移动对CMWAP作了一定的限制,主要表现在CMWAP接入时只能访问GPRS网络内的IP(10.*.*.*),而无
法通过路由访问Internet。(少数地区的移动网络可能不存在这一限制。)我们用CMWAP浏览Internet上的网页就是通过WAP网关协议或它提供
的HTTP代理服务实现的。
说到这里,就让我自然而然的联想到我们公司的网络,相信不少工作的朋友都有类似的体会。公司的网络在网关上不提供路由和NAT,仅仅
提供一个可以访问外网的HTTP代理。这样,我们就无法直接使用QQ、MSN等非HTTP协议的应用软件了(好在它们还提供的有HTTP代理的连接方式
)。CMWAP也正是
(4) 适用范围
适用范围才是大家最关心的问题。CMNET拥有完全的Internet访问权,这里就不多说了,主要让我们来看看CMWAP。因为有了上面提到的限
制,CMWAP的适用范围就要看WAP网关所提供的支持了。目前,中国移动的WAP网关对外只提供HTTP代理协议(80和8080端口)和WAP网关协议
(9201端口)。(据有的网友提到1080端口也是开放的,但无法连接。这也许是移动内部使用的一个Socks后门吧^_^)。
你打电话问10086,cmnet和cmwap是不是一样收费的,如果是一样的,把cmwap换成cmnet速度会快一点。
北京这边cmnet和cmwap不再区分了