如何判断移动终端访问还是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是否为空的判断。