天天看點

判斷http請求是來自手機還是PC

某些情形,我們需要判斷Http請求是來自手機端還是電腦端,關鍵是取得User-Agent的資訊,進行篩選判斷即可。

核心類如下

public static boolean  isMobileDevice(String requestHeader){
        /**
         * android : 所有android裝置
         * mac os : iphone ipad
         * windows phone:Nokia等windows系統的手機
         */
        String[] deviceArray = new String[]{"android","mac os","windows phone"};
        if(requestHeader == null)
            return false;
        requestHeader = requestHeader.toLowerCase();
        for(int i=0;i<deviceArray.length;i++){
            if(requestHeader.indexOf(deviceArray[i])>0){
                return true;
            }
        }
        return false;
}
           

在controller中擷取http頭資訊如下:

String requestHeader = request.getHeader("user-agent");
        if(JudgeRequestDeviceUtil.isMobileDevice(requestHeader)){
            logger.debug("使用手機浏覽器");
        }else{
            logger.debug("使用web浏覽器");
        }