完美解决 请在微信客户端打开链接

article/2025/10/3 15:43:30

背景描述

-w272

相信有模拟微信页面请求的测试都有看到过这个页面,简单点说就是爬虫爬微信页面,进行回放的时候会出现这个页面。大概在1年前,专门安排了一个人去解决这个技术问题,遗憾的是当时没有找到解决方案,接下来所有微信端的接口测试和性能测试都无法进行,今天和大家分享下我们的解决方案,希望大家可以绕过微信的坑。

业务场景

我这里以JMeter来举例,我们可以通过在JMeter上开启代理,手机上设置代理来录制微信端的请求,以下为在微信端的业务对应生成的脚本:

-w800

录制完成后,我们进行回放,你会发现在查看结果树中,会重定向到微信授权,接着就开始提示:请在微信客户端打开链接。

-w800

这里补充几个录制的小技巧

-w800

1、每个组放入一个新的控制器:在手机端上做的一次操作所产生的请求会被放在一个控制器中,非常方便;
2、选中记录HTTP信息头、添加断言、Regex matching :自动添加信息头和断言;

问题分析

这里我们看一下请在微信客户端打开链接页面对应的代码:

<script type="text/javascript">var ua = navigator.userAgent.toLowerCase();var isWeixin = ua.indexOf('micromessenger') != -1;var isAndroid = ua.indexOf('android') != -1;var isIos = (ua.indexOf('iphone') != -1) || (ua.indexOf('ipad') != -1);if (!isWeixin) {document.head.innerHTML = '<title>抱歉,出错了</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"><link rel="stylesheet" type="text/css" href="https://res.wx.qq.com/open/libs/weui/0.4.1/weui.css">';document.body.innerHTML = '<div class="weui_msg"><div class="weui_icon_area"><i class="weui_icon_info weui_icon_msg"></i></div><div class="weui_text_area"><h4 class="weui_msg_title">请在微信客户端打开链接</h4></div></div>';}</script>

重点看:

var ua = navigator.userAgent.toLowerCase();
var isWeixin = ua.indexOf('micromessenger') != -1;

说明微信的这个提示是通过判断userAgent中是否包含micromessenger确认是否从微信中打开。
好了,我们查看以下HTTP头中的userAgent:

-w800

录制的时候自动添加了录制HTTP请求头的,那么为什么在JMeter打开会仍然会提示呢?这里怀疑是微信故意留的坑或者是微信开发这个页面的人英语四级没过。

解决方案

经过和我们程序猿哥哥陈丹明陈建清一番讨论,一开始没有解决方案;此时丹明怀疑MicroMessenger这个单词写错了,应该是:micromessage!一试,果然!
好吧,程序猿你赢了,看来懂英语是多么的重要。

最终解决

在HTTP请求头里面将MicroMessenger修改成 micromessage

-w800

小结

1、请在微信客户端打开链接 这个问题困扰了我们很久,今天总算解决,完美解决;
2、感谢程序猿的大胆怀疑,给他们点赞;
3、自动化测试过程中如果碰见了技术瓶颈,不妨多和研发沟通,他们总能给你一些指导。

Note:

1、单纯的访问页面,则修改成:micromessage就好;
2、在访问页面之前需要进行授权登录,则需要和开发沟通下具体的业务逻辑

3.、是将MicroMessenger替换成micromessage


http://chatgpt.dhexx.cn/article/n6jlBQhF.shtml

相关文章

最新解决“请在微信客户端中打开链接”的教程分享

正文: 在浏览器访问网站&#xff0c;却提示“请在微信客户端打开链接”。虽然这个情况你可能从未遇到过&#xff0c;但对于爱折腾的小伙伴&#xff0c;确是一道拦路虎&#xff0c;但其实解决办法很简单&#xff0c;教程我就打包在Word文档了&#xff0c;有需要的朋友自己去查看…

“请在微信客户端打开链接”解决方案

当我们将微信页面地址复制到电脑自带的浏览器上打开时候就会提示“请在微信客户端打开链接”如图所示&#xff1a; 百度上很多都是告诉我们用什么抓包工具破解什么的&#xff0c;结果呢没 luan用&#xff01;这给我们开发人员调试带来了诸多不便。下面我教大家如何解决&#xf…

QinQ技术原理

基本QinQ&#xff1a; 基于接口方式实现&#xff0c;收到数据包后为数据包打上外层接口的缺省vlan tag。需要将外网设备与内网相连接的接口的类型改成隧道&#xff0c;然后配置需要打上的固定标签。 灵活QinQ&#xff1a; 可以对于同一个接口收到的数据可以根据需求打上不同…

QinQ与Vlan Mapping讲解与实验配置

目录 QinQ Vlan扩展 QinQ实现方式 QinQ实验配置 Vlan Mapping Vlan映射 映射方式 配置命令 QinQ Vlan扩展 QinQ全称为802.1Q-in-802.1Q&#xff0c;为Vlan扩展技术&#xff0c;在802.1Q标签报文的基础上再增加一层802.1Q标签&#xff0c;实现扩展Vlan空间&#xff1b;可…

配置QinQ

配置基于接口的 QinQ 网络中有两个大企业&#xff0c;企业 1 有两个办公地&#xff0c;企业 2 有三个办公地&#xff0c;这两个企业的各办公地的企业网都分别和运营商网络中的 SwitchG 或 SwitchF 相连。企业 1 的网络中使用 VLAN1000&#xff5e;VLAN1500&#xff0c;企业 2 的…

qinq的抓包实验

一、基本 QinQ 又称为 QinQ 二层隧道&#xff0c;是基于接口方式实现的。开启接口的基本 QinQ 功能后&#xff0c;当该 接口接收到报文&#xff0c;设备会为该报文打上本接口缺省 VLAN 的 VLAN Tag。如果接收到的是已经带 有 VLAN Tag 的报文&#xff0c;该报文就成为双 Tag 的…

5.2 VLAN:QinQ

文章目录 1.介绍2.华为2.1 基本QinQ2.2 灵活QinQ 3.思科 1.介绍 首先要知道QinQ的字面意思&#xff0c;大家都知道数据帧在二层传输中一般是用802.1q协议在源MAC地址后面加一个vlan 标签&#xff08;内层标签&#xff09;,而QinQ就在数据帧源MAC地址和内层标签之间再加一个vlan…

ensp QinQ的配置

QinQ技术〔也称Stacked VLAN 或Double VLAN〕。标准出自IEEE 802.1ad,其实现将用户私网VLAN Tag封装在公网VLAN Tag中&#xff0c;使报文带着两层VLAN Tag穿越运营商的骨干网络&#xff08;公网&#xff09; -----来源百度百科 QinQ概述 QinQ概述 QinQ的工作原理&#xff1a;多…

MUX-VLAN QINQ

MUX-VLAN 主VLAN :可以与MUX VLAN内所有的VLAN通信 隔离VLAN&#xff1a;只能和主vlan通信 组从VLAN&#xff1a;可以和相同组内的vlan通信&#xff0c;可以和主vlan通信 QINQ 应用场景 运营商宽带城域网&#xff0c;QINQ的内层标签识别每…

ENSP实验-QINQ

一、实验目的&#xff1a; 1.PC配置相同24位网段地址&#xff0c;采用如图vlan划分隔离 2.PE1、PE2之间采用trunk qinq的外层vlan标签vlan 100 300 400 3.基本qinq:CE1/CE3上行trunk vlan10、vlan20&#xff0c;PE1/PE2对应接口默认均封装一层vlan100 4.灵活qinq:CE2/CE4上行t…

案例分享:QinQ基本组网配置

配置需求 公司A的两个分支机构Site 1和Site 2通过运营商网络进行通信&#xff0c;该公司各业务使用的VLAN为VLAN 10&#xff5e;70&#xff1b;公司B的两个分支机构Site 3和Site 4也通过运营商网络进行通信&#xff0c;该公司各业务使用的VLAN为VLAN 30&#xff5e;90。 PE 1和…

QinQ初识--qinq基础知识

目录 一、QinQ简介 定义&#xff1a; 目的&#xff1a; 优点&#xff1a; 二、原理描述 基本原理&#xff1a; QinQ报文&#xff1a; 字段解释&#xff1a; 报文示例&#xff1a; QinQ封装&#xff1a; 三、实现方式 基本QinQ&#xff1a; 灵活QinQ&#xff1a; …

华为QinQ简单配置

qinq QinQ技术〔也称Stacked VLAN 或Double VLAN〕。标准出自IEEE 802.1ad,其实现将用户私网VLAN Tag封装在公网VLAN Tag中&#xff0c;使报文带着两层VLAN Tag穿越运营商的骨干网络&#xff08;公网&#xff09;。 作用 设备提供的端口QinQ特性是一种简单、灵活的二层VPN技术…

基本QinQ及灵活QinQ配置

基本QinQ和灵活QinQ的配置 实验拓扑 实验要求 要求LSW4和LSW6使用基本QinQ实现通信,打上vlan 2&#xff1b;LSW3和LSW5使用灵活QinQ实现通信&#xff0c;并且对于vlan30的数据打上vlan2的标签&#xff1b;对于vlan40的数据打上vlan3的标签 命令配置 基本QinQ配置 首先在LS…

华为灵活QinQ技术

华为灵活QinQ 灵活QinQ是对QinQ的一种更灵活的实现&#xff0c;又叫VLAN Stacking或QinQ Stacking。它是基于接口与VLAN相结合的方式实现的。除了能实现所有基本QinQ的功能外&#xff0c;对于同一个接口接收的报文还可以根据不同的VLAN做不同的动作&#xff0c;可以实现以下功…

QinQ技术的原理和配置

目录 一、QinQ技术的基础 1、QinQ技术的原理 2、QinQ的实现方式 3. QinQ的应用场景 二、QinQ技术的配置 1、基本QinQ配置 2、灵活QinQ配置 一、QinQ技术的基础 1、QinQ技术的原理 QinQ技术是一种二层封装技术&#xff0c;数据在传输的过程中&#xff0c;会在802.1Q …

QinQ概述

QinQ - hongliang888 - 博客园 (cnblogs.com) QinQ是什么&#xff1f;和VLAN什么关系&#xff1f;【VLAN专题】 - 腾讯云开发者社区-腾讯云 (tencent.com) QinQ概述 QinQ(802.1Q in 802.1Q)技术是一项扩展VLAN空间的技术&#xff0c;通过在802.1Q标签报文的基础上再曾加一层…

QINQ 交换机配置

定义 QinQ&#xff08;802.1Q-in-802.1Q&#xff09;技术是一项扩展VLAN空间的技术&#xff0c;通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的功能&#xff0c;可以使私网VLAN透传公网。由于在骨干网中传递的报文有两层802.1Q Tag&#xff08;一层公…

读书笔记(12)QINQ

概述 在以太网 II 数据帧中&#xff0c;VLAN Tag 占 12 个位&#xff0c;理论上实际可用的 VLAN ID 有 2^124096 个&#xff0c;也就是我们常所说的有 4K 个可用 VLAN ID 可用&#xff0c;但实际上在某些厂家的设备上可能只有 1000 个 VLAN ID 可用。在城域以太等大型组网中&am…

QinQ高大上体现

一、首先要了解什么是QinQ: QinQ&#xff08;802.1Q-in-802.1Q&#xff09;技术是一项扩展VLAN空间的技术&#xff0c;通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的功能&#xff0c;可以使私网VLAN透传公网。由于在骨干网中传递的报文有两层802.1Q…