【學一點兒前端】真機調試本地公眾號網頁項目

前言

微信公眾號網頁開發的真機調試一直是很頭疼的事情。
原因一
微信公眾號配置的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.pswp.cn/news/208197.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/208197.shtml
英文地址,請注明出處:http://en.pswp.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,},效果展示

AI:89-基于卷積神經網絡的遙感圖像地物分類

?? 本文選自專欄:人工智能領域200例教程專欄 從基礎到實踐,深入學習。無論你是初學者還是經驗豐富的老手,對于本專欄案例和項目實踐都有參考學習意義。 ??? 每一個案例都附帶有在本地跑過的核心代碼,詳細講解供大家學習,希望可以幫到大家。歡迎訂閱支持,正在不斷更新…

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…

【NEON】學習資料匯總

一、資料鏈接 Guide &#xff1a; http://www.heenes.de/ro/material/arm/DEN0018A_neon_programmers_guide_en.pdf csdn博文1&#xff0c;基礎案例&#xff1a; https://blog.csdn.net/kakasxin/article/details/103912832? csdn博文2&#xff0c;內部函數&#xff1a; ht…

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;可能會讓你輸入…

028:簡單的foreach

028:簡單的foreach 總時間限制: 1000ms 內存限制: 65536kB 描述 編寫MyForeach模板&#xff0c;使程序按要求輸出 不得編寫 MyForeach函數 #include <iostream> #include <string> using namespace std; // 在此處補充你的代碼 void Print(string s) {cout <…

【面試經典150 | 二叉樹】對稱二叉樹

文章目錄 寫在前面Tag題目來源解題思路方法一&#xff1a;遞歸方法二&#xff1a;迭代 寫在最后 寫在前面 本專欄專注于分析與講解【面試經典150】算法&#xff0c;兩到三天更新一篇文章&#xff0c;歡迎催更…… 專欄內容以分析題目為主&#xff0c;并附帶一些對于本題涉及到的…

第6講、Hyper-V體系結構和相關管理程序文件及服務:

1、Hyper-V的體系結構 1、CPU能力在服務器虛擬化實現中扮演著一個重要角色&#xff0c;Intel/AMD型號的CPU定義了一些權限 級別&#xff0c;稱為ring。在傳統模型中&#xff0c;ring0級別最高權限最大。Windows內核和設備驅動程序 使用這個級別…

【優選算法系列】【專題一雙指針】第三節.611. 有效三角形的個數和LCR 179. 查找總價格為目標值的兩個商品

文章目錄 前言一、有效三角形的個數 1.1 題目描述 1.2 題目解析 1.2.1 算法原理 1.2.2 代碼編寫 1.2.3 題目總結二、查找總價格為目標值的兩個商品 2.1 題目描述 2.2 題目解析 2.2.1 算法原理 …

0008-【PID學習筆記 8 】控制系統的分析方法

寫在前面 前面已經完成了控制系統的性能指標學習&#xff0c;從這節開始繼續學習控制系統的分析方法&#xff0c;本文重點介紹分析方法概述和時域分析法。 一、控制系統的基本分析方法 控制系統的基本分析方法包括&#xff1a; 古典方法&#xff08;經典控制理論&#xff09;…

獨孤思維:賺錢需要獨一無二的支點,而不是技多不壓身的堆料

賺錢需要找到屬于自己獨一無二&#xff0c;且超乎常人的支點&#xff0c;而不應該一味追求大而全&#xff0c;技多不壓身的堆料。 凡是考了一堆證書&#xff0c;以為掌握多項技能&#xff0c;就能賺到錢的都是學生思維。 尤其是很多剛入職場的年輕人&#xff0c;為了職場晉升…

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…

LLaMA-Factory微調ChatGLM3報錯: Segmentation fault (core dumped)

SFT訓練模型的命令 CUDA_VISIBLE_DEVICES0 python src/train_bash.py \--stage sft \--model_name_or_path models/chatglm3-6b \--do_train \--dataset self_cognition \--template chatglm3 \--finetuning_type lora \--lora_target query_key_value \--output_dir output/c…

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…

LeetCode雙指針:有序數組中的單一元素

LeetCode雙指針&#xff1a;有序數組中的單一元素 題目描述 給你一個僅由整數組成的有序數組&#xff0c;其中每個元素都會出現兩次&#xff0c;唯有一個數只會出現一次。 請你找出并返回只出現一次的那個數。 你設計的解決方案必須滿足 O(log n) 時間復雜度和 O(1) 空間復…