JAVA-判断请求来自PC端还是手机端?

某些情形,我们需要判断Http请求是来自手机端还是电脑端,关键是取得User-Agent的信息,进行筛选判断即可。

核心类如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

publicstaticbooleanisMobileDevice(String requestHeader){

/**

* android : 所有android设备

* mac os : iphone ipad

* windows phone:Nokia等windows系统的手机

*/

String[] deviceArray =newString[]{"android","mac os","windows phone"};

if(requestHeader ==null)

returnfalse;

requestHeader = requestHeader.toLowerCase();

for(inti=0;i<deviceArray.length;i++){

if(requestHeader.indexOf(deviceArray[i])>0){

returntrue;

}

}

returnfalse;

}

在controller中获取http头信息如下:

1

2

3

4

5

6

String requestHeader = request.getHeader("user-agent");

if(JudgeRequestDeviceUtil.isMobileDevice(requestHeader)){

logger.debug("使用手机浏览器");

}else{

logger.debug("使用web浏览器");

}

来自: