我们经常需要知道访问网站的设备是移动终端还是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是否为空的判断。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-26
  • 2021-09-16
  • 2022-03-01
  • 2021-10-20
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-05
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案