zoukankan      html  css  js  c++  java
  • 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判断真烦,搞得我都乐了!

  • 相关阅读:
    php-7.0.16 , apache2.4.25 配置
    一次完整的HTTP请求需要的7个步骤
    TypeScript 配置
    React Please wrap your <Route> in a <Routes>
    Typescript node 里使用 multer插件, req 没有 file这个属性
    node 操作mongodb 用 find() 第一个参数无效
    手机请求不到本地服务器 [Error: Network Error]
    模块 ""mongoose"" 没有默认导出。你是想改为使用 "import { Mongoose } from "mongoose"" 吗?
    小程序 自定义 tabBar Component “页面路径“ does not have a method “ 方法名“ to handle event “tap“
    react-native 初始化项目失败
  • 原文地址:https://www.cnblogs.com/wolf-shuai/p/15411862.html
Copyright © 2011-2022 走看看