【学一点儿前端】真机调试本地公众号网页项目

前言

微信公众号网页开发的真机调试一直是很头疼的事情。
原因一
微信公众号配置的JS安全域名只有三个,一个大中型的公众号这三个JS安全域名都是生产的域名,不可能预留域名用于开发和调试。
原因二
在微信里面只有访问正确的安全域名才能调用wx.config用来调用微信的接口。调试器和真机有差异。
原因三
在实际的开发中我们不可能写一部分代码上传到生产的服务器上再用真机调试,这样是非常麻烦的事情。
解决方案
通过微信里面的链接访问本地的前端服务进行真机调试。

思考

第一步是搞定微信开发者工具的调试流程。
虽然支付等特殊场景在开发者工具上不方便测试,但是搞通开发者工具的调试流程也足够应对大部分场景了。
我们知道,微信首先会检查域名,那我们就从域名上下功夫。
先说一个不知道算不算冷门的知识:webpack 的 devServer 可以指定 host 为一个域名,Vite Server 同样也可以。port 参数也可以指定为 80。
基于此,假设我们的线上域名是baidu.com,我们可以先在本地开发时指定 host 为baidu.com, port 为 80。

此时我们打开浏览器通过http://baidu.com:80这个地址访问,80 端口是 http 的默认端口,所以带不带 80 其实都一样,此时我们的请求会根据 DNS 解析访问到线上服务器,由于代理服务器配置了 301 重定向,http 80 端口的请求会被重定向到 https 443 端口,

所以浏览器会再发起一次请求到https://baidu.com,最终得到的响应还是来源于我们的线上环境。

有的读者可能就会问了,既然 devServer host 配置了线上域名,但最终的请求还是转到线上的机器去了,那这对我本地调试来说有什么意义?
这就要搞清楚 DNS 的解析流程是怎么回事了。我们知道,IP 对应的服务器才是真正提供服务的,域名只不过是一个名字,而 DNS 服务就是负责把域名解析到 IP 上的。
而 DNS 解析的第一道关口就是本机的 hosts 文件,hosts 文件中找不到的记录,才会往 DNS 服务器去找。
那我们只要把 hosts 文件给改了,让juejin.cn解析到我本地的 IP 不就行了吗?我们来试试。

第一步和第二步是设置要调试的合法域名与本地之间的代理
第三步和第四部是设置本地抓真机的包
四步连通就达到真机调试本地公众号网页项目的目的

step1:设置项目端口,获取本地IP

必须把项目本地代理设为80端口(也就是默认端口),否则访问链接存在端口字段就无法通过微信域名校验

// 本地代理
    server: {
        host: '0.0.0.0',
        port: 80, // 设置服务启动端口号
        open: false, // 设置服务启动时是否自动打开浏览器
        cors: true, // 允许跨域
        https: false, // 开启https协议
        // 设置代理,根据项目实际情况配置
        proxy: {
            '/welife': {
                target:'https://daojiach.hstypay.com',
                changeOrigin: true,
                secure: false,
                // rewrite: (path) => path.replace('/welife/', '/'),
            },
        },
    },

npm run dev的时候终端会显示出本地IP,在终端运行IPconfig也可以获取到。
在这里插入图片描述

图片中 192.xxx.xxx.xxx 是本地IP地址。

step2:更改hosts文件,获取本地IP地址

hosts 文件在 Windows 操作系统中通常是位于C:\Windows\System32\drivers\etc目录下,我们修改一下这个文件,加入一条记录,接着需要用管理员权限保存。

127.0.0.1 daojiach.hstypay.com

在这里插入图片描述
这样本地访问daojiach.hstypay.com/manage/就等于访问我的本地192.xxx.xxx.xxx:80/manage/了。
在这里插入图片描述

step3:安装fiddler,进行配置

现在开始操作手机与本地之间的抓包
安装 Fiddler
去官网安装,不要去奇怪的网站,或者找我要安装包
安装后打开
进行Fiddler配置
在这里插入图片描述
监听端口默认8888
在这里插入图片描述
菜单栏Tools => Fiddler Options 对话框切换到Connections选项卡 勾选Allowromote computers to connect
在这里插入图片描述
信任根证书
在这里插入图片描述
可能会遇到无法上网的情况,所以下面这个建议勾选
在这里插入图片描述

以下三小步为小芳Fillder使用教程引用部分
默认我们能抓到的都是http请求,但越来越多的网站都使用了更安全的https协议,要怎样抓到https的请求呢?让我们一起来设置一下吧

第一步:菜单栏 Tools=》Options=>HTTPS=>勾选Capture HTTPS CONNECTs 点击Actions选择导出证书到桌面。
在这里插入图片描述
在这里插入图片描述

第二步:Win+R打开运行,输入certmgr.msc,找到受信任的根证书颁发机构,将Fiddler证书导入
在这里插入图片描述

第三步:重启Fiddler

这时我们就能抓到https的包了o( ̄▽ ̄)ブ

PC端的包对我们来说浏览器的network就够用了,手机端的请求却没有地方可以看,这时候Fiddler就派上用场了。在一切皆可抓的Fiddler面前移动端抓包自然不是问题,如何操作呢

step4:手机抓包步骤

第一步:确定本地的ip地址

第二步:申请公司IT06手机内网权限,通过后跟刘星说明需要手机swiftpass-m和电脑swiftpass抓包通信

第三步:打开手机

第四步:

android: 设备的设置 =》WLAN 链接 代理-> 手动→输入电脑的ip地址→端口8888
在这里插入图片描述

打开浏览器访问配置好的IP:端口,下载fiddler的CA证书并到设置里将下载下来的CA证书进行安装
在这里插入图片描述

在这里插入图片描述

IOS: 相对Android增加一步 设置=》通用=》关于本机=》证书信任设置=》“DO_NOT_TRUST_FiddlerRoot”修改右侧开关=》设置为开启状态

第五步:手机随便访问某个网页,在fiddler中可以看到完成的请求和响应数据
在这里插入图片描述

step5:大功告成

现在 手机微信里面 访问http://daojiach.hstypay.com/manage/就会访问电脑上的前端服务192.xxx.xxx.xxx:80/manage/,并且是热重载。通过更改前端服务器的转发地址就可以变化访问后端服务器。 这样就很方便调试了。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/229439.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu 22.04源码安装yasm 1.3.0

sudo lsb_release -r看到操作系统的版本是22.04,sudo uname -r可以看到内核版本是5.15.0-86-generic,sudo gcc --version可以看到版本是11.2.0,sudo make --version可以看到版本是GNU Make 4.3。 下载yasm http://yasm.tortall.net/Downlo…

《Android编程权威指南》之第二个activity源码及挑战

文章目录 前言效果图依赖MainactivityKotlin的“ ?”kotlin的符号 QuizViewModelQuestion类CheatActivityonBackPressed()companion CheatViewModelstring.xml 前言 实现禁止一题多答,按题记录作弊状态、偷看次数限制、横竖屏切换依旧保存状态数据 个人…

GeoPandas初体验:它是什么,我用它展示一下shp矢量数据

GeoPandas 是一个开源的 Python 库,用于处理地理空间数据。它扩展了 Pandas 这个流行的 Python 数据操作库,增加了对地理数据类型和操作的支持。GeoPandas 结合了 Pandas、Matplotlib 和 Shapely 的功能,提供了一个易于使用且高效的工具&…

“我要报名”参观双十二外贸电商节,报名方式都在这!

双十二外贸电商节深圳进出口贸易博览会 2023年12月11-12日 深圳福田会展中心 近1万方展览面积 30000专业观众 跨境选品 外贸采购 行业趋势 人才对接 ▼▼▼▼ 展会时间 2023年12月11日-12日 展会地点 深圳福田会展中心 双十二外贸电商节暨2023深圳进出口贸易博览会选…

【SpringCache】快速入门 通俗易懂

1. 介绍 Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。 Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,例如: EHCache Caffeine Redis(常用…

云服务器Centos中安装Docker

云服务器Centos中安装Docker 1 简介DockerCentosCentos和Ubuntu区别 2 安装3 测试hello-world的镜像测试 1 简介 Docker Docker是一个开源的应用容器引擎,利用操作系统本身已有的机制和特性,可以实现远超传统虚拟机的轻量级虚拟化。它支持将软件编译成…

Python 日志指南

目录 日志指南 日志基础教程 什么时候使用日志 一个简单的例子 记录日志到文件 从多个模块记录日志 记录变量数据 更改显示消息的格式 在消息中显示日期/时间 后续步骤 进阶日志教程 记录流程 记录器 处理器 格式器 配置日志记录 如果没有提供配置会发生什么 …

python-04(入门基础篇4——lists相关的部分语法)

python-04(入门基础篇4——lists相关的部分语法) 1. 前言1.1 python入门1.2 参考官网 2. 关于索引和切片3. 在列表追加元素3.1 支持拼接3.2 使用list.append() 方法在列表末尾添加新项 4. 列表是可变类型4.1 更改其中某元素内容4.2 使用切片更改列表大小…

数据结构与算法(六)分支限界法(Java)

目录 一、简介1.1 定义1.2 知识回顾1.3 两种解空间树1.4 三种分支限界法1.5 回溯法与分支线定法对比1.6 使用步骤 二、经典示例:0-1背包问题2.1 题目2.2 分析1)暴力枚举2)分支限界法 2.3 代码实现1)实现广度优先策略遍历2&#xf…

视频批量剪辑方法:AI智剪创新力,批量剪辑新风潮

随着数字媒体技术的不断发展,视频剪辑已经成为日常生活和工作中不可或缺的一部分。然而,对于许多非专业人士来说,视频剪辑仍然是一个相对繁琐和复杂的过程。AI智剪是一种基于人工智能技术的视频批量剪辑方法。它可以通过自动化和智能化的方式…

用23种设计模式打造一个cocos creator的游戏框架----(五)工厂方法模式

1、模式标准 模式名称:工厂方法模式 模式分类:创建型 模式意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 结构图: 适用于: 1、当一个类不知道它…

安装以及使用Minio分布式文件系统

简介 MinIO 是一个非常轻量的服务,可以很简单的和其他应用的结合使用,它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。 它一大特点就是轻量,使用…

循环单向链表与约瑟夫问题

循环链表介绍 先不急着看约瑟夫问题是什么,先了解循环链表的结构,那什么是循环链表? 循环,顾名思义,从链表中第一个节点出发,还会遇到第一个节点,形成循环的一环。也就是说链表中最后一个节点…

春晚回应吉祥物“龙辰辰”被质疑 AI 合成;周星驰 Web3 团队下月上线独立 App 丨 RTE 开发者日报 Vol.102

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

Python基础知识-变量、数据类型(整型、浮点型、字符类型、布尔类型)详解

1、基本的输出和计算表达式: prinit(12-3) printf(12*3) printf(12/3) prinit(12-3) printf(12*3) printf(12/3) 形如12-3称为表达式 这个表达式的运算结果称为 表达式的返回值 1 2 3 这样的数字,叫做 字面值常量 - * /称为 运算符或者操作符 在C和j…

【S32DS报错】-2-提示Error while launching command:arm-none-eabi-gdb –version错误

目录 1 Error错误提示 2 Error错误原因 3 如何消除Error错误 结尾 【S32K3_MCAL从入门到精通】合集: S32K3_MCAL从入门到精通https://blog.csdn.net/qfmzhu/category_12519033.html 1 Error错误提示 使用S32DSJ-LinK下载程序,在Dedug Configurati…

TA-Lib学习研究笔记(九)——Pattern Recognition (2)

TA-Lib学习研究笔记(九)——Pattern Recognition (2) 形态识别的函数的应用,通过使用A股实际的数据,验证形态识别函数,用K线显示出现标志的形态走势,由于入口参数基本上是open, hig…

H5ke14--1--拖放

介绍drag,drop 一.被拖动元素,目标(释放区) 元素要设置dragable属性:true,false,auto 被拖动元素上面有三个事件,drag,dragend,按下左键,移动种,鼠标松,这三个事件一般只用获取我们的被拖动元素 冒泡:event是可以继承的,mouseevent鼠标事件,dragevent拖放事件,前面都是一个…

大数据技术1:大数据发展简史

前言:学习大数据技术,知道会用已经够了,但是要想走得更远,应该了解它发展的来龙去脉,为何会有新的技术/工具的出现,相比老的技术有什么样的进步。 1、传统数据处理系统存在的问题 随着信息时代互联网技术爆…

Efficient physics-informed neural networks using hash encoding

论文阅读:Efficient physics-informed neural networks using hash encoding Efficient physics-informed neural networks using hash encoding简介方法PINN哈希编码具有哈希编码的 PINN 实验Burgers 方程Helmholtz 方程N-S 方程训练效率对比 总结 Efficient physi…