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

近来在开发一个基于手机上网的项目。遇到的第一件事情就是,该项目需要同时支持手机和PC。详细的说:当pc登陆上来,访问的是html;当手机登陆上来就是wml。 

   那我们怎么来判断呢? 

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

Java代码   收藏代码
  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代码   收藏代码
  1. String userAgent = request.getHeader("User-Agent");  


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

还有人说可以用HTTP_ACCEPT来判断,判断访问过来的终端是否支持wml,这样问题又会出现,如果某个浏览器既能支持wml和html,或者现在很多智能手机既能支持wml和html,你还是没招了!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值