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

来源:互联网 发布:抢票用什么软件好 编辑:程序博客网 时间:2024/05/16 14:09

今天在开发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正确发送到了服务器端,解决了问题。