V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
NSDont
V2EX  ›  Python

坑人的移不动

  •  
  •   NSDont · 2014-10-08 13:30:54 +08:00 · 4557 次点击
    这是一个创建于 3694 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我们在开发移动端App时,使用RESTful风格来构建服务端API,对于一些请求操作参数不符合要求的场景,我们会返回400 Code,如果是权限不足等操作,则是403. 结果,测试下来发现,其他运营商都OK,唯独移动这家,无论2G还是3G还是4G网络,只要第一次请求API资源是非200(例如400),第二次也是非200,那么这第二次以后所有对相同资源地址的请求访问,都会被强制redirect到139.com域名!

    不知其他V友在开发移动端应用时有没有遇到这种问题.
    26 条回复    2014-10-08 21:12:21 +08:00
    icinessz
        1
    icinessz  
       2014-10-08 13:34:14 +08:00
    移动哪个业务?
    icinessz
        2
    icinessz  
       2014-10-08 13:35:46 +08:00
    =。。=我理解错了
    NSDont
        3
    NSDont  
    OP
       2014-10-08 13:48:36 +08:00
    @icinessz (*^__^*) 嘻嘻……
    wzzyj8
        4
    wzzyj8  
       2014-10-08 14:01:23 +08:00 via Android
    都有的,联通也会,电信则是很隐蔽的加自己的广告弹窗,没有法律去约束这种劫持行为也就只有任由他们耍流氓。暂时的解决办法只能是自己用SSL保护起来,至少SSL他们暂时不会去动。
    est
        5
    est  
       2014-10-08 14:10:13 +08:00
    我也一直在想这个问题,话说兲朝要求所有网站必须首页显示ICP备案号,那如果是纯API网站肿么办?
    mengzhuo
        6
    mengzhuo  
       2014-10-08 14:18:01 +08:00
    @est

    我也好奇
    反正目前中国AWS的是不管的
    istommao
        7
    istommao  
       2014-10-08 14:39:33 +08:00
    天朝就是流氓辈出啊
    NSDont
        8
    NSDont  
    OP
       2014-10-08 14:47:08 +08:00
    @wzzyj8 我们现在还只是踩了移动的坑, 我们一开始使用电信宽带的时候, 什么问题都没有, 然后让客户测试的, 报了这个bug(我们这边一直使用电信宽带, 完全无法重现这个bug), 然后折腾了很久, 才发现, 居然是这个结果, 哭了啊.
    wzzyj8
        9
    wzzyj8  
       2014-10-08 15:18:30 +08:00 via Android
    @NSDont 电信也是手机才有。。哭啊
    leiz
        10
    leiz  
       2014-10-08 15:41:13 +08:00
    @est 再纯api你也可以挂一个index.html上面用H1写上备案号,有什么问题?
    qiayue
        11
    qiayue  
       2014-10-08 15:45:05 +08:00
    所以最好的解决办法是,所有的请求都返回 200 ,表明服务器响应了,然后自己在返回的数据里定义错误情况,而不要使用 HTTP 原生的错误码。
    loryyang
        12
    loryyang  
       2014-10-08 15:56:05 +08:00
    奇闻共赏析。。。运营商劫持的问题也存在好久了,就没个人大代表做个提案吗?
    xylophone21
        13
    xylophone21  
       2014-10-08 16:03:08 +08:00   ❤️ 1
    @loryyang 程序员的代表是谁?
    loryyang
        14
    loryyang  
       2014-10-08 16:13:28 +08:00
    @xylophone21 有几个互联网老总是人大代表吧,其他好像还真没了
    jianghu52
        15
    jianghu52  
       2014-10-08 16:18:46 +08:00
    其实你要是换个角度看问题,可能心情就好很多。
    你看,人家都知道三次返回200就劫持,换句话说,又多了一个表现机会。你们可以自定义200,404,500等错误。甚至可以在错误页面上挂广告,这样的话指不定VP还能多一点呢。这都是移动给指出的明路啊。
    mornlight
        16
    mornlight  
       2014-10-08 16:22:08 +08:00
    应该是他们为了节省资源缓存了吧
    cst4you
        17
    cst4you  
       2014-10-08 16:31:53 +08:00
    @est
    api 返回的东西里出个字段内容是备案号 -_,-
    qiayue
        18
    qiayue  
       2014-10-08 16:32:18 +08:00
    @jianghu52 感觉你没仔细看楼主描述的情况
    est
        19
    est  
       2014-10-08 16:46:13 +08:00
    @cst4you 按照JSON标准,汉字要写成 \uXXXX 这种的。备案号里面恰好有个 京 什么的开头。
    hging
        20
    hging  
       2014-10-08 16:49:48 +08:00
    如果你知道长城宽带还硬放广告的话. 你就不会觉得移动坑了. 用着用着 右下角peng的就弹出来个广告. 你想想什么感觉吧.
    wdlth
        21
    wdlth  
       2014-10-08 17:04:31 +08:00
    移不动这么便宜,当然要避免跨网流量了……
    guotie
        22
    guotie  
       2014-10-08 17:20:11 +08:00
    404推送,哈哈,哥很了解。
    xatest
        23
    xatest  
       2014-10-08 18:09:31 +08:00
    @est 有可视的网页,浏览器能访问的才叫网站吧,纯API那只能叫服务器,应该不用备案。。。
    est
        24
    est  
       2014-10-08 19:16:04 +08:00
    @xatest 能解释给领导听就好了。
    wzxjohn
        25
    wzxjohn  
       2014-10-08 19:33:44 +08:00 via iPad
    还是那句老话,中国移不动是天朝劫持最严重的运营商,没有之一。
    esile
        26
    esile  
       2014-10-08 21:12:21 +08:00
    自定义错误代码
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5587 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 08:51 · PVG 16:51 · LAX 00:51 · JFK 03:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.