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

前言

微信公众号网页开发的真机调试一直是很头疼的事情。
原因一
微信公众号配置的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/,并且是热重载。通过更改前端服务器的转发地址就可以变化访问后端服务器。 这样就很方便调试了。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vuepress-----18、图片缩放

图片引入两种方式 地址 # 图片缩放插件 # 实战 md文件引入图片 <img class"zoom-custom-imgs" :src"$withBase(/favicon.ico)" alt"favicon">安装配置插件 vuepress/medium-zoom: {selector: img.zoom-custom-imgs,},效果展示

MVCC是什么

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一波电子书籍资料&#xff0c;包含《Effective Java中文版 第2版》《深入JAVA虚拟机》&#xff0c;《重构改善既有代码设计》&#xff0c;《MySQL高性能-第3版》&…

ChibiOS简介1/5

ChibiOS简介1/5 1. 源由2. ChibiOS基础知识1/52.1 Chapter 1 - Introduction2.1.1 Priciple&#xff08;设计原则&#xff09;2.1.2 Fundamental requirements&#xff08;基本需求&#xff09; 2.2 Chapter 2 - Real Time Systems Concepts2.2.1 System&#xff08;系统&#…

flutter TextPainter 的用法

本文章基于 Flutter 3.16.2 Dart SDK 3.2.2。 TextPainter 是 Flutter 中用于在 Canvas 上绘制文本的类。它允许您在自定义的 CustomPainter 中使用 drawText 方法来绘制文本&#xff0c;并可以控制文本的位置、颜色、字体等属性。 import package:flutter/material.dart;cla…

css 输入框动态特效

先上图 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>css 输入框动效</title><style>.inputBox {position: relative;width: 250px;}.inputBox input {width: 100%;padding: 10px…

使用git push太慢怎么办

使用git push太慢怎么办 修改host文件&#xff1a; windows 的路径应该在 C:\Windows\System32\drivers\etc\hosts 在host文件的最后一行加上 151.101.72.249 github.global.ssl.fastly.nethost不允许修改就复制一份&#xff0c;修改好了再替换掉&#xff0c;可能会让你输入…

【面试经典150 | 二叉树】对称二叉树

文章目录 写在前面Tag题目来源解题思路方法一&#xff1a;递归方法二&#xff1a;迭代 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的…

【优选算法系列】【专题一双指针】第三节.611. 有效三角形的个数和LCR 179. 查找总价格为目标值的两个商品

文章目录 前言一、有效三角形的个数 1.1 题目描述 1.2 题目解析 1.2.1 算法原理 1.2.2 代码编写 1.2.3 题目总结二、查找总价格为目标值的两个商品 2.1 题目描述 2.2 题目解析 2.2.1 算法原理 …

2024山东健博会,济南健康展,5月中国大健康展,健康管理展

China-DJK山东健博会&#xff1a;5月黄金招商季&#xff0c;携千家参展商、万余款产品精彩亮相&#xff1b; DJK 2024第6届中国&#xff08;济南&#xff09;国际大健康产业博览会 The 2024 sixth China (Jinan) International Big Health Industry Expo 时间&#xff1a;2024…

Docker网络原理

Docker网络概述 1.桥接模式介绍 bridge模式是docker的默认网络模式。 桥接模式是一种用于连接两个不同网络段的设备&#xff0c;使它们能够共享通信的一种方式。 桥接设备工作在OSI模型的第二层&#xff0c;即数据链路层&#xff0c;通常基于MAC地址进行帧转发。 物理层连接…

一个简单的 postman设置接口关联让我措施了大厂的机会

postman设置接口关联 在实际的接口测试中&#xff0c;后一个接口经常需要用到前一个接口返回的结果&#xff0c; 从而让后一个接口能正常执行&#xff0c;这个过程的实现称为关联。 在postman中实现关联操作的步骤如下&#xff1a; 1、利用postman获取上一个接口指定的返回值…

YOLOv8 YoLov8l 模型输出及水果识别

&#x1f368; 本文为[&#x1f517;365天深度学习训练营学习记录博客 &#x1f366; 参考文章&#xff1a;365天深度学习训练营 &#x1f356; 原作者&#xff1a;[K同学啊 | 接辅导、项目定制] &#x1f680; 文章来源&#xff1a;[K同学的学习圈子](https://www.yuque.com/m…

关于什么是 JVM

关于什么是 JVM&#xff0c;看看普通⼈和⾼⼿的回答。 普通人 JVM 就是 Java 虚拟机&#xff0c;是⽤来运⾏我们平时所写的 Java 代码的。优点是它会 ⾃动进⾏内存管理和垃圾回收&#xff0c;缺点是⼀旦发⽣问题&#xff0c;要是不了解 JVM 的运⾏ 机制&#xff0c; 就很难…

是谁还没玩AI扩图?快跟上节奏啦

最近&#xff0c;抖音上的AI扩图突然火了&#xff0c;看完真的让人笑掉大牙&#xff5e;&#xff5e;&#xff5e; 这一热议的话题#AI扩图#在短视频平台抖音上的播放量已经突破7.8亿次&#xff0c;而相关的讨论也如同星火燎原&#xff0c;迅速点燃了公众的好奇心。从“用AI扩图…

中伟视界:皮带跑偏、异物检测AI算法除了矿山行业应用,还能在钢铁、火电、港口等行业中使用吗?

随着工业化的发展&#xff0c;皮带输送机已经成为各行业中不可或缺的重要设备&#xff0c;但是在使用过程中&#xff0c;由于各种原因&#xff0c;皮带常常出现跑偏问题&#xff0c;给生产运营带来了诸多困扰。不仅仅是矿山行业&#xff0c;钢铁、火电、港口等行业也都面临着皮…

C语言 扫雷游戏

代码在一个项目里完成&#xff0c;分成三个.c.h文件(game.c,game.h,main.c) 在Clion软件中通过运行调试。 /大概想法/ 主函数main.c里是大框架(菜单,扫雷棋盘初始化&#xff0c;随机函数生成雷&#xff0c;玩家扫雷) game.h函数声明(除main函数和游戏函数外的一些函数声明) ga…

日志打印传值 传引用 右值引用性能测试

结论 ubuntu x86平台qnx平台优化传值都是比传引用的差 但是差距很小 测试代码 #include <cstdint> #include <ctime> #include <string>#ifdef __linux__#define ITERATIONS 10000000 #else#define ITERATIONS 100000 #endiftemplate <typename... AR…

Linux设置root初始密码

目录 一、Linux系统中普通用户和特权用户&#xff08;root&#xff09; 二、Linux系统中设置root初始密码 一、Linux系统中普通用户和特权用户&#xff08;root&#xff09; windows 系统中有普通用户和特权用户&#xff0c;特权用户是 administer&#xff0c;普通用户可以…

微服务01

笔记&#xff1a; day03-微服务01 - 飞书云文档 (feishu.cn) 数据库连接不上&#xff1f; 要在虚拟机启动MySQL容器。docker start mysql 服务治理 服务提供者&#xff1a;暴露服务接口&#xff0c;供其他服务调用 服务消费者&#xff1a;调用其他服务提供的接口 注册中心&…

STL(五)(queue篇)

我发现之前一版在电脑上看 常用函数部分 没有问题,由于是手打上去的,在手机上看会发生错位问题,现已将电脑原版 常用函数部分 截图改为图片形式,不会再发生错位问题,非常感谢大家的支持 ### priority_queue优先队列出现频率非常高,尤为重要(是一定要掌握的数据结构) 1.queue队…