V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiangyuecn
V2EX  ›  Android

Android 里面的猪队友 webview 神一样的操作😂

  •  
  •   xiangyuecn · 2019-08-09 00:52:17 +08:00 · 12022 次点击
    这是一个创建于 1937 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前些天在 Android app 里面测试打开一个第三方的活动页,发现请求头里面居然带了 X-Requested-With 头,值是 app 的包名。。。4.x、9.x 全版本覆盖

    能不能去掉?能!写个 5000 行代码自行接管网络请求(能被处理的数据还是被阉割的)就行了。。。关键这个功能模块才 20 行代码😂

    这几天每次想到这哔事都会去搜索一番,并没有一个好的解决办法。今天晚上大半夜又爬起来搜索了一下😂 当绝望到想去用腾讯 x5、crosswalk 时候,还是忍忍(少写几行 bug 还是好的)


    WebView.loadUrl(url,additionalHttpHeaders)这个方法,简直就像沙雕一样。4.x 好好的,没有问题,测试的 8.0、9.0 会把自定义的请求头名称全部改成小写(包括自定义的 X-Requested-With ),非蠢即坏。

    我要小写的时候自然会去写小写的头名称,这种没法控制的干预是不道德的😂

    怎么解决,和上面一样,写个 5000 行代码自己处理网络请求😒


    webview 关键时候成了鸡肋,更鸡肋的 ios 的 webview 这方面反而更优秀点,半夜不睡纯吐槽👀

    改 1 个 bug 引出 10 个 bug,天天写 bug

    11 条回复    2020-02-22 22:53:04 +08:00
    phy25
        1
    phy25  
       2019-08-09 00:58:49 +08:00 via Android
    「把自定义的请求头名称全部改成小写」我猜是 HTTP2 规范。不过的确比较强制了。
    xiangyuecn
        2
    xiangyuecn  
    OP
       2019-08-09 01:05:14 +08:00   ❤️ 1
    @phy25 这个请求中,只有自定义的那个头是纯小写,其他的全部是首字母大写😂 哪门子都算不规范😁
    jinliming2
        3
    jinliming2  
       2019-08-09 01:09:27 +08:00 via iPhone
    请求头规则上就是不区分大小写的,所以与其吐槽他们强制统一小写在符合标准的前提下统一了大小写避免问题,还不如自己遵守标准在取头的时候遵守标准忽略大小写!
    xiangyuecn
        4
    xiangyuecn  
    OP
       2019-08-09 01:15:31 +08:00
    记得好多年前碰到腾讯 x5 的一个事故,自作主张的添加了一个非常不规范的头,好像是名称里面带了空格,导致当天大量使用 iis 的网站在微信、使用 x5 的 app 打不开,iis 直接对这种请求返回 400。当天售后哀鸿一片,还好第二天自己恢复了。腾讯里面写这坨代码的人有没有被开除就不清楚了
    billlee
        5
    billlee  
       2019-08-09 01:16:22 +08:00
    http 头的名称从来都是大小写不敏感的
    xiangyuecn
        6
    xiangyuecn  
    OP
       2019-08-09 01:19:33 +08:00
    @jinliming2 大小写问题,目前只是看着不舒服,一堆大写开头的里面突然冒出一个小写,真碍眼,不过用还是照样用啦。
    wwqgtxx
        7
    wwqgtxx  
       2019-08-09 01:27:39 +08:00 via iPhone
    现在大部分后段框架都会忽略请求头的大小写吧,毕竟是规范,很多客户端网络库也会忽略比如老牌的 requests
    ysc3839
        8
    ysc3839  
       2019-08-09 01:58:55 +08:00 via Android
    @phy25 HTTP 标准一开始请求头就是不区分大小写的,只不过大家习惯性首字母大写,但是程序处理时会忽略大小写。
    HTTP/2 大概是因为请求头的压缩算法是忽略大小写的。
    ysc3839
        9
    ysc3839  
       2019-08-09 02:16:32 +08:00 via Android
    Windows 自带的 WebBrowser 给人感觉也很难用,不过 Windows 下还有 CEF 这种开源还好用的浏览器框架。
    meso5533
        10
    meso5533  
       2019-08-10 06:31:10 +08:00 via Android
    X-Requested-With 在广告防作弊方面地位非常重要,因为很难去掉和修改,除非自己接管网络请求
    cdeepsleep
        11
    cdeepsleep  
       2020-02-22 22:53:04 +08:00
    大佬可以分享一下你的方案吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3204 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 00:38 · PVG 08:38 · LAX 16:38 · JFK 19:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.