android项目使用移动数据在设置接入点为net时无法连接服务器

       最近,遇到一个很奇怪的问题,一个android的项目,竟然登陆不了,之前可以正常登陆,当时我们的实施在上海使用移动的网络登陆平台,发现请求失败,连接服务器错误,后来,我在公司试了一下,明明是可以的,大家也都试试,都是可行的,于是就没管了,理所当然的认为是他的问题。当时我们是在无线网的环境中登陆的。

       后来他从上海回来了,在公司登陆,还是好好的,中午去吃饭,他又登陆了,这时~~~~~问题来了,在移动数据下无法登陆,大家都是,这个时候我就纳闷了,晚上回去后,屋里的无线网也是可以登陆的,这就很不理解了

       于是,昨天下午好好看了一下网络请求,在debug模式下跑了很多次,使用无线网没问题,网络是200,但是当切换到移动或者电信4g的时候就会报错网络错误404或者5**,尽管百度了很久还是没有什么有价值的参考,仅仅看到有人说电信卡请求时,读取xml文件时会多出空格,还有会自动解压gzip文件,虽然和我的问题相差很多,但是多少有点进展了,接着漫无目的的百度,忽然看到接入点的字样,于是把移动卡作为流量卡NET 切换为WAP,这个时候就可以登陆了,电信卡NET切换为WAP,这个时候就可以正常登陆,大家一切换发现都可以了,此时问题才来了,为什么会这样呢?~~~~~

          后来百度就可以直接点了,于是得到一些有价值的参考

       &: 在使用android做网络请求时,会遇上一个问题,当用户使用的是wap网络时,则需要为网络请求头加上代理地理和端口                    号。 而使用wifi或者cmnet网络连接时,不用设置代理地址和端口号。

    (1) 手机发出请求; 
  (2) 移动网络(gsm、cdma或其它移动网络)接通本地isp; 
  (3) 本地isp连接wap网关服务器; 
  (4) wap网关服务器向目标内容服务器发出请求; 
  (5) 目标内容服务器将信息传给wap网关服务器; 
  (6) wap网关服务器将处理后的信息发送到本地isp; 
  (7) 本地isp将住处传回移动网络; 
  (8) 手机接收到internet信息; 

按照这个原理,那我就可以理解为什么设置为WAP后就可以正常登陆了,也就是说使用WAP以后,就会先通过WAP的代理然后到WAP的服务器做了请求处理,这就可以正常登陆了

但是~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

还有人遇到过和我刚好相反的问题,偏偏是WAP不行

https://blog.csdn.net/miemie1320/article/details/18734343

这个给出了设置方案,可我的好像完美的跳过了,哎

为什么wifi情况下也可以呢?这就解释不通了,于是我开始用

String proxy = Proxy.getDefaultHost();
int port = Proxy.getDefaultPort() == -1 ? 80 : Proxy.getDefaultPort();

获得当前代理和端口却发现

/**
 * 电信net和 wap 代理为空
 * 端口:80
 *
 * 移动
 * net 代理为空
 * 端口:80
 * wap 代理 10.0.0.172
 * 端口:80
 *
 * wifi
 * 代理:空
 * 端口:80
 */

这不就尴尬了

因为这个大家都知道的:

移动和联通的WAP代理服务器都是10.0.0.172,端口号是80;

而电信的WAP代理服务器是10.0.0.200,端口号是80。

那我为什么除了移动WAP有代理别的都没有呢?

到了这里我就无计可施了,如果有大佬看到,希望能解说一下,或者点拨一下,让我不再迷茫哎

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值