美文网首页
Android4.4系统上WebView传递Referer失效的

Android4.4系统上WebView传递Referer失效的

作者: 黄蜗牛 | 来源:发表于2018-01-05 11:17 被阅读0次

    问题描述:

    在使用WebView请求目标地址时,服务器要求带Refer字段,于是通过WebView提供的loadUrl(String url, Map<String,String> additionalHttpHeader)方法来实现,代码如下:

    Map<String, String> extraHeaders = new HashMap<>();
    String referer = "http://xxxx.com"
    extraHeaders.put("Referer", referer);
    view.loadUrl(payinfo.getWebUrl(), extraHeaders);
    

    在很多手机上运行正常,但是在4.4的手机上出现请求被服务端拒绝的情况,分析后发现是4.4手机上请求头里添加的Referer字段丢失了。

    解决办法

    没想到好的解决办法,Google了一下,发现一个韩国网站上有人遇到过这个问题并分享了解决方法,原贴如下:传送门,代码如下:

    Map<String, String> extraHeaders = new HashMap<>();
    String referer = "http://xxxx.com"
    if (("4.4.3".equals(android.os.Build.VERSION.RELEASE))
                    || ("4.4.4".equals(android.os.Build.VERSION.RELEASE))) {          
        extraHeaders.put("Referer ", referer);
    } else {
        extraHeaders.put("Referer", referer);
    }
    extraHeaders.put("Referer", referer);
    view.loadUrl(payinfo.getWebUrl(), extraHeaders);
    

    注:发现了吗,就是在Referer字段后面加了一个空格。:)

    相关文章

      网友评论

          本文标题:Android4.4系统上WebView传递Referer失效的

          本文链接:https://www.haomeiwen.com/subject/pmvjnxtx.html