当前位置: 首页 > news >正文

(未解决)jmeter报错之“请在微信客户端打开链接”

  这是一个还没解决的问题,这里纯粹记录自己思考的过程,后续给自己参考。

  先说明情景:对微信公众号的一个接口进行调用跑通,后续可能需要压测(是的,仅仅是调通一个接口而已o(╥﹏╥)o)

1、按照我理解的正常套路,我直接请求对应的接口,然后通过抓包得到Cookie,写入到HTTP Cookie管理器中,如下:

emmmm....开始百度,发现也有类似的提问,但是没有一个靠谱有效的答案。然后我就去分析登录过程了,看最后一个重定向的响应数据:

恩?意思就是还要用户授权,扫码然后在手机上点击【确定】,然后才能登录?于是,我去找微信授权网页开发的东西,官方文档:网站应用微信登录开发指南。

文档写的简单易懂,看完之后自己继续尝试,但是好像一直拿不到一个有效的code。

对应的开发最近又在弄双十一的需求,实在不好意思叨扰。猜测应该是我需要传某些参数,进而跳过用户授权这么一个步骤。

-----------------------------------------------分割线-----------------------------------------------------

  今天开发有空,和他聊了聊,得到一些东西:首先,这个项目没有前后端分离,采用的验证是JWT做的。然后拿着我的问题去请教(其中还出现了一个情况,我加上了User-Agent,响应结果提示我在微信客户端打开链接),开发告知我扫码这个步骤是由来源控制的,如果没有来源也不是微信浏览器就会让扫码(“来源”涉及公司业务)。那么问题就又回到一个点:jmeter如何模拟微信客户端发起请求?查看微信相关的开发文档:

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);

我填写的User-Agent是满足这些条件的,查看请求中也带了User-agent,那么为什么还会被服务器判定为不是微信浏览器?

技术有限,这个问题我暂时是没辙了,优先完成工作任务,我就用另一种方式去调通接口了,公司业务层面的来源控制:

JWT做的验证,我拿到了token,然后一起传进去,还是重定向到了登录页。哎,技术菜,是原罪啊,该干活了.....

 

 

___学习是个锐化自己的过程 

转载于:https://www.cnblogs.com/zichuan/p/9910146.html

相关文章:

  • codeforces 1045I Palindrome Pairs 【stl+构造】
  • 【SSH网上商城项目实战09】添加和更新商品类别功能的实现
  • 10-many2one
  • 【模板】ac自动机
  • ELK实时日志分析平台环境部署--完整记录
  • 前端学习路线
  • mysql字段名与关键字重复解决办法
  • 一步一步实现web程序信息管理系统之一----登陆界面实现
  • nginx反向代理解决跨域问题
  • 云架构师进阶攻略
  • 辗转相除法求最大公约数(c++)
  • Customize Acrylic Brush in UWP Applications(在UWP中自定义亚克力笔刷)
  • Java 基础拾遗
  • Docker Swarm 介绍 or 工作原理
  • go学习笔记-错误处理
  • angular2 简述
  • Angularjs之国际化
  • extjs4学习之配置
  • JavaScript 一些 DOM 的知识点
  • Laravel Telescope:优雅的应用调试工具
  • spring + angular 实现导出excel
  • Spring Boot快速入门(一):Hello Spring Boot
  • Sublime Text 2/3 绑定Eclipse快捷键
  • windows下mongoDB的环境配置
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 初识MongoDB分片
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 设计模式(12)迭代器模式(讲解+应用)
  • 再次简单明了总结flex布局,一看就懂...
  • # 飞书APP集成平台-数字化落地
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (LeetCode 49)Anagrams
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (六)软件测试分工
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • ... 是什么 ?... 有什么用处?
  • ./和../以及/和~之间的区别
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .bat文件调用java类的main方法
  • .chm格式文件如何阅读
  • .htaccess配置重写url引擎
  • .md即markdown文件的基本常用编写语法
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .project文件
  • @KafkaListener注解详解(一)| 常用参数详解
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • []sim300 GPRS数据收发程序
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [Angularjs]asp.net mvc+angularjs+web api单页应用
  • [Avalon] Avalon中的Conditional Formatting.
  • [bzoj4010][HNOI2015]菜肴制作_贪心_拓扑排序
  • [C#]winform部署PaddleOCRV3推理模型
  • [C/C++] C/C++中数字与字符串之间的转换