天天看點

Java 識别請求來自移動端還是電腦端

代碼:

/**
 * @Author : JCccc
 * @CreateTime : 2020/7/1
 * @Description :
 **/
public class DiscernRequestUtil {
    /**
     * 識别請求是 手機端(分系統) 還是電腦端
     * @param userAgent
     * @return
     */
    public static String getRequestDevice(String userAgent) {
        userAgent=userAgent.toLowerCase();
        if (userAgent.contains("windows phone")){
            return  "Windows手機端";
        }else if (userAgent.contains("android")) {
            return  "安卓手機端";
        }else if(userAgent.contains("iphone") || userAgent.contains("ipad")){
            return  "ios手機端";
        }else {
            return  "電腦端";

        }
    }

    /**
     * 識别請求是手機端還是電腦端
     * @param userAgent
     * @return
     */
    public static String getAskType(String userAgent) {
        userAgent=userAgent.toLowerCase();
        if (userAgent.contains("windows phone")
                ||
                userAgent.contains("android")
                ||
                userAgent.contains("iphone")
                ||
                userAgent.contains("ipad") //暫且把ipad也歸為蘋果裝置
        ){
            return  "mobile";
        }else {
            return  "pc";

        }
    }

}      

接口測試&使用方式:

就是從HttpServletRequest request 的頭裡拿出 user-agent 這個key的值做識别處理。

@GetMapping("doSomeTest")
    public void doSomeTest(HttpServletRequest request){
        
        
        String userAgent  = request.getHeader("user-agent");
        
        
        String requestDevice = getRequestDevice(userAgent);
        System.out.println(requestDevice);

        
        String askType = getAskType(userAgent);
        System.out.println(askType);

    }