首页 > 其他 > 详细

服务器端通过http请求区分是mobile还是pc

时间:2014-04-06 23:14:08      阅读:520      评论:0      收藏:0      [点我收藏+]
近来在开发一个基于手机上网的项目。遇到的第一件事情就是,该项目需要同时支持手机和PC。详细的说:当pc登陆上来,访问的是html;当手机登陆上来就是wml。 

   那我们怎么来判断呢? 

   入正题,下面说说我的解决办法。 

Java代码  bubuko.com,布布扣
  1. /** 
  2.  * 传入http请求的UserAgent 
  3.  * 根据它判断是手机还是电脑发送过来的请求 
  4.  * @param userAgent 
  5.  * @return 
  6.  */  
  7. public static boolean choose(String userAgent) {  
  8.     if (userAgent.indexOf("Noki") > -1 || // Nokia phones and emulators  
  9.             userAgent.indexOf("Eric") > -1 || // Ericsson WAP phones and emulators  
  10.             userAgent.indexOf("WapI") > -1 || // Ericsson WapIDE 2.0  
  11.             userAgent.indexOf("MC21") > -1 || // Ericsson MC218  
  12.             userAgent.indexOf("AUR") > -1  || // Ericsson R320  
  13.             userAgent.indexOf("R380") > -1 || // Ericsson R380  
  14.             userAgent.indexOf("UP.B") > -1 || // UP.Browser  
  15.             userAgent.indexOf("WinW") > -1 || // WinWAP browser  
  16.             userAgent.indexOf("UPG1") > -1 || // UP.SDK 4.0  
  17.             userAgent.indexOf("upsi") > -1 || //another kind of UP.Browser  
  18.             userAgent.indexOf("QWAP") > -1 || // unknown QWAPPER browser  
  19.             userAgent.indexOf("Jigs") > -1 || // unknown JigSaw browser  
  20.             userAgent.indexOf("Java") > -1 || // unknown Java based browser  
  21.             userAgent.indexOf("Alca") > -1 || // unknown Alcatel-BE3 browser (UP based)  
  22.             userAgent.indexOf("MITS") > -1 || // unknown Mitsubishi browser  
  23.             userAgent.indexOf("MOT-") > -1 || // unknown browser (UP based)  
  24.             userAgent.indexOf("My S") > -1 ||//  unknown Ericsson devkit browser   
  25.             userAgent.indexOf("WAPJ") > -1 ||//Virtual WAPJAG www.wapjag.de  
  26.             userAgent.indexOf("fetc") > -1 ||//fetchpage.cgi Perl script from www.wapcab.de  
  27.             userAgent.indexOf("ALAV") > -1 || //yet another unknown UP based browser  
  28.             userAgent.indexOf("Wapa") > -1 || //another unknown browser (Web based "Wapalyzer")  
  29.             userAgent.indexOf("Oper") > -1) {  
  30.         return true;  
  31.     } else {  
  32.         return false;  
  33.     }  
  34. }  


参数userAgent: 
Java代码  bubuko.com,布布扣
  1. String userAgent = request.getHeader("User-Agent");  


有人说可以根据来访的IP来判断,好像是行不通的。当采用wap上网方式还好判断;一旦采用net来访问,往往也是可以获取独立的IP的。 

还有人说可以用HTTP_ACCEPT来判断,判断访问过来的终端是否支持wml,这样问题又会出现,如果某个浏览器既能支持wml和html,或者现在很多智能手机既能支持wml和html,你还是没招了!

服务器端通过http请求区分是mobile还是pc,布布扣,bubuko.com

服务器端通过http请求区分是mobile还是pc

原文:http://blog.csdn.net/tfy1332/article/details/23037149

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!