关于Android不能正确发送User-Agent的解决方法

今天在开发Android程序时用HttpURLConnection .setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");方法发送User-Agent给服务器,结果发现服务器不能收到的User Agent是类似于Dalvik/1.1.0(Linux; U; Android 3.4b5 Build/FCF)的字符串,而不是我发送的内容。

经过阅读源代码,我发现在RuntimeInit的commonInit方法里面有

         /*

         * Sets the default HTTP User-Agent used by HttpURLConnection.
         */
        String userAgent = getDefaultUserAgent();

        System.setProperty("http.agent", userAgent);

两句代码,getDefaultUserAgent()方法构建了Dalvik/1.1.0(Linux; U; Android 3.4b5 Build/FCF)的字符串,并放到了http.agent的属性里面。于是我调用了System.setProperty("http.agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");方法把我要发送的User Agent正确发送到了服务器端,解决了问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值