如何判断移动终端访问还是PC访问?

我们经常需要知道访问网站的设备是移动终端还是PAD还是PC,下面给出判断的java代码供参考。实现的原理就是获取HTTP消息头里User-Agent和x-wap-profile,User-下面是User-Agent实际抓包的例子。

User-Agent: Mozilla/5.0 (Linux; Android 4.3; Coolpad 8705 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Mobile Safari/537.36

/**

     * 判断是否是从手机或者PAD访问的

     * 

     * @param request

     * @return

     * true:为移动终端

     * false:为PC用户

     */

    public static boolean IsMobile(HttpServletRequest request) {

        String user_agent = request.getHeader("User-Agent");

        String wap_profile = request.getHeader("x-wap-profile");

        if(user_agent ==null)

            return true;

        if (user_agent.contains("Android") || user_agent.contains("iPhone")

                || (wap_profile != null && wap_profile.length() > 0)) {

            return true;

        } else {

            return false;

        }



    }

另外需要注意的是同样是移动终端,在TD-LTE环境下发现请求包里会不携带User-Agent头,移动终端在WIFI和WCDMA环境下访问就会携带。这个问题让我花了一些时间(系统会报500错,后来增加了user_agent是否为空的判断。

你可能感兴趣的:(移动)