主要根据User-Agent判断
相关验证
Web端
app端
工具方法
/**
* @author godissleepy
*/
public class StringUtil {
/**
* 定义移动端请求的所有可能类型
*/
private final static String[] agent = { "Android", "iPhone", "iPod","iPad", "Windows Phone", "MQQBrowser" };
/**
* 判断User-Agent 是不是来自于手机
* @param ua
* @return
*/
public static boolean checkAgentIsMobile(String ua) {
boolean flag = false;
if (!ua.contains("Windows NT") || (ua.contains("Windows NT") && ua.contains("compatible; MSIE 9.0;"))) {
// 排除 苹果桌面系统
if (!ua.contains("Windows NT") && !ua.contains("Macintosh")) {
for (String item : agent) {
if (ua.contains(item)) {
flag = true;
break;
}
}
}
}
return flag;
}
}
验证方法
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 判断是app请求还是web请求
* @author godissleepy
*/
@RestController
public class RedBagController {
@GetMapping("/checkAgent")
public void testUa(HttpServletRequest request, HttpServletResponse response) throws IOException {
String ua = request.getHeader("User-Agent");
if(StringUtil.checkAgentIsMobile(ua)){
System.out.println("app");
}else{
System.out.println("web");
}
}
}