java判斷微信請求來源(電腦瀏覽器、電腦微信端頁面、移動端微信)


先來履下思路

判斷來源請求也就是判斷header中的內容來確定請求來源

下面列出三種請求頭的內容(header):

電腦瀏覽器:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36

電腦微信端頁面(1):Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 NetType/WIFI MicroMessenger/7.0.20.1781(0x6700143B) WindowsWechat(0x63030532)

電腦微信端頁面(2):Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36 QBCore/4.0.1320.400 QQBrowser/9.0.2524.400 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2875.116 Safari/537.36 NetType/WIFI MicroMessenger/7.0.20.1781(0x6700143B) WindowsWechat(0x63010200)

移動端微信:Mozilla/5.0 (Linux; Android 9; PAR-AL00 Build/HUAWEIPAR-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.72 MQQBrowser/6.2 TBS/045811 Mobile Safari/537.36 MMWEBID/9371 MicroMessenger/8.0.15.2020(0x28000F35) Process/tools WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64

 

        //溫馨提示Constants.VALIDATION_USER_WECHAT_FLAH的值為true
        String userAgent2 = request.getHeader("user-agent"); //瀏覽器 if (Constants.VALIDATION_USER_WECHAT_FLAH && (userAgent2 == null || (userAgent2 != null && !userAgent2.contains("MicroMessenger")))) { checkFlag = false; System.out.println("請求來源為瀏覽器端微信請求"); }else if (Constants.VALIDATION_USER_WECHAT_FLAH && (userAgent2 == null || (userAgent2 != null && userAgent2.contains("Windows NT"))) && (userAgent2 == null || (userAgent2 != null && userAgent2.contains("WindowsWechat")))) { //PC端 checkFlag = false; System.out.println("請求來源為PC端請求"); }else{
          System.out.println("請求來源為移動端微信請求");       
        }

以上就是三種場景的來源判斷如何有別的場景(例如蘋果手機、蘋果電腦、蘋果電腦瀏覽器)沒有設備也就沒做測試。
如果有大小寫的區分一定要注意更改userAgent2和判斷中的內容!

這個boolean判斷真煩,搞得我都樂了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM