spy-debugger + Charles 調試移動端/內嵌小程序H5

簡介說明:

PC端可以用F12進行console等進行調試,但移動端App中使用webview就無法進行實時調試,針對這種情況

1. 安裝

全局安裝 spy-debugger

sudo npm install spy-debugger -g
// window不用加sudo

2. spy-debugger 證書

其實spy-debugger的代理是基于node-mitmproxy模塊實現的,這里安裝的證書其實是node-mitmproxy的證書,標題寫spy-debugger證書是為了和Charels證書區分開來避免混淆。

電腦安裝證書

在命令行中執行spy-debugger啟動spy-debugger服務,啟動成功后,檢查你的用戶目錄目錄~,會發現多了一個node-mitmproxy文件夾,這個文件夾內放的就是代理需要的證書。
我Mac電腦完整的路徑是:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

接下來需要在手機安裝此證書(安卓為例)

首先需要將node-mitmproxy.ca.crt上傳到手機上,可以通過live-server 在node-mitmproxy.ca.crt文件所在的目錄下啟動這個服務。如果你還沒有live-server命令,可以通過以下命令進行安裝:

sudo npm i -g live-server

在/xxxx/xxx/node-mitmproxy目錄下執行live-server命令
在這里插入圖片描述
在這里插入圖片描述
在手機瀏覽器上訪問這個服務,輸入我電腦的IP地址和端口進行訪問,??手機和電腦必須是連接同一個WiFi網絡才可以訪問。
點擊node-mitmproxy.ca.crt文件進行下載安裝
在這里插入圖片描述
下載下來,在瀏覽器下載中心中長按查看下載的目錄
在這里插入圖片描述
找到手機設置-》搜索受信任的憑據(每個手機叫法不一樣,最終就是安裝ca證書)
在這里插入圖片描述
從手機存儲安裝
在這里插入圖片描述
選擇CA證書
在這里插入圖片描述
按照剛剛找到的路徑找,點擊信任安裝
在這里插入圖片描述

此時,spy-debugger的前期準備工作就已經全部完成了

3. Charles 證書

這里簡單介紹一下Charles的證書安裝,如果你已經是Charles的老手了,可以直接跳過。Charles如果不安裝證書的話是無法抓https的請求的。

電腦安裝證書

第1步:
點擊Charles的Help> SSL Proxying> Install Charles Root Cetificate 然后就會彈出證書安裝頁面,將Charles的證書設置為始終信任即可:
在這里插入圖片描述
在這里插入圖片描述
第2步:
點擊Charles的Proxy > Access Control Settings進行配置讓手機連接代理時,不需要點允許連接確認操作。
在這里插入圖片描述

手機安裝charles證書

第1步:
點擊Charles的Help> SSL Proxying> Install Charles Root Cetificate on a Mobile Device or Remote Browser
然后會彈出一個對話框,告訴你手機要設置的代理IP地址和端口,
??注意:手機和電腦必須連接同一個WiFi才可以。
在這里插入圖片描述第2步:
根據提示在手機上配置Wi-Fi網絡代理,在手機上點擊設置> wifi->手動代理,進行輸入IP和端口號
第3步:
在瀏覽器輸入chls.pro/ssl,下載并安裝證書
下載證書的步驟就和上面spy-debugger下載證書的方式一樣
此時,Charles所有的準備工作都完成了,接下來我們就可以啟動spy-debugger進行移動端H5調試了。

4. 測試使用,啟動spy-debugger

第1步:
啟動命令

# 啟動spy-debugger服務 
spy-debugger 

也可以使用-e參數設置Charles作為外部代理服務

# 啟動spy-debugger服務,并設置外部代理為Charles的服務,8888是charles的端口
spy-debugger -e http://127.0.0.1:8888 

在這里插入圖片描述

上述命令表示啟動spy-debugger調試服務,并將所有的資源請求都轉發到Charles的代理服務上。其實我們打開Charles程序的時候,它實際上是在本地啟動了一個http的服務,監聽在8888端口上。
在這里插入圖片描述
第3步:
在瀏覽器打開http://127.0.0.1:59224/client/

在這里插入圖片描述
第4步:
在京東App里隨便找一個H5頁面打開,或者在手機瀏覽器上打開 https://m.jd.com/

在這里插入圖片描述
在這里插入圖片描述
第5步:
此時在瀏覽器上的Remote選項卡上就可以看到,連接的終端了
在這里插入圖片描述
第6步:
我們可以在Elements選項上進行頁面元素的選擇和調試,可以發現我們鼠標放到元素上,手機端上會實時看到選中效果
在這里插入圖片描述
第7步:
我們還可以在Console選項卡下查看代碼輸出的console信息,我們也可以這里輸入頁面要執行的代碼
在這里插入圖片描述
在這里插入圖片描述
第8步:
此時我們發現所有的請求都被轉發到了Charles上
在這里插入圖片描述

OK,到這里spy-debugger + Charles進行移動端調試的接入流程就介紹完了,更多關于spy-debugger的功能和使用方法,可以參考https://github.com/wuchangming/spy-debugger

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/68103.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/68103.shtml
英文地址,請注明出處:http://en.pswp.cn/web/68103.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【目標檢測】模型驗證:K-Fold 交叉驗證

K-Fold 交叉驗證 1、引言1.1 K 折交叉驗證概述 2、配置2.1 數據集2.2 安裝包 3、 實戰3.1 生成物體檢測數據集的特征向量3.2 K 折數據集拆分3.3 保存記錄3.4 使用 K 折數據分割訓練YOLO 4、總結 1、引言 我們將利用YOLO 檢測格式和關鍵的Python 庫(如 sklearn、pan…

Android studio ternimal 中gradle 指令失效(gradle環境變量未配置)

默認gradle路徑:C:\Users\ylwj.gradle\wrapper\dists\gradle-8.10.2-bin\a04bxjujx95o3nb99gddekhwo\gradle-8.10.2\bin 環境變量-系統環境變量-雙擊path-配置上即可-注意重啟studio才會生效

Axure大屏可視化動態交互設計:解鎖數據魅力,引領決策新風尚

可視化組件/模板預覽:https://8dge09.axshare.com 一、大屏可視化技術概覽 在數據驅動決策的時代,大屏可視化技術憑借直觀、動態的展示方式,已成為眾多行業提升管理效率和優化決策過程的關鍵工具。它能夠將復雜的數據轉化為易于理解的圖形和…

Resnet 改進:嘗試在不同位置加入Transform模塊

目錄 1. TransformerBlock 2. resnet 3. 替換部分卷積層 4. 在特定位置插入Transformer模塊 5. 使用Transformer全局特征提取器 6. 其他 Tips:融入模塊后的網絡經過測試,可以直接使用,設置好輸入和輸出的圖片維度即可 1. TransformerBlock TransformerBlock是Transfo…

PromptSource和LangChain哪個更好

目錄 1. 設計目標與定位 PromptSource LangChain 2. 功能對比 3. 優缺點分析 PromptSource LangChain 4. 如何選擇? 5. 總結 PromptSource 和 LangChain 是兩個在自然語言處理(NLP)領域非常有用的工具,但它們的設計目標和…

MySQL調優02 - SQL語句的優化

SQL語句的優化 文章目錄 SQL語句的優化一:SQL優化的小技巧1:編寫SQL時的注意點1.1:查詢時盡量不要使用*1.2:連表查詢時盡量不要關聯太多表1.3:多表查詢時一定要以小驅大1.4:like不要使用左模糊或者全模糊1.…

langchain教程-12.Agent/工具定義/Agent調用工具/Agentic RAG

前言 該系列教程的代碼: https://github.com/shar-pen/Langchain-MiniTutorial 我主要參考 langchain 官方教程, 有選擇性的記錄了一下學習內容 這是教程清單 1.初試langchain2.prompt3.OutputParser/輸出解析4.model/vllm模型部署和langchain調用5.DocumentLoader/多種文檔…

如何實現網頁不用刷新也能更新

要實現用戶在網頁上不用刷新也能到下一題,可以使用 前端和后端交互的技術,比如 AJAX(Asynchronous JavaScript and XML)、Fetch API 或 WebSocket 來實現局部頁面更新。以下是一個實現思路: 1. 使用前端 AJAX 或 Fetch…

在ubuntu22.04上先部署docker,再編譯安裝kamailio,附詳細操作流程及docker和makailio的版本號

以下是在Ubuntu 22.04上部署Docker并編譯安裝Kamailio的詳細操作流程,包含版本號信息: 一、部署Docker(版本:24.0.7) 更新系統包 sudo apt update && sudo apt upgrade -y安裝依賴工具 sudo apt install -y ap…

大模型中提到的超參數是什么

在大模型中提到的超參數是指在模型訓練之前需要手動設置的參數,這些參數決定了模型的訓練過程和最終性能。超參數與模型內部通過訓練獲得的參數(如權重和偏置)不同,它們通常不會通過訓練自動學習,而是需要開發者根據任…

位運算及常用技巧

涉及位運算的運算符如下表所示: 位運算的運算律: 負數的位運算 首先,我們要知道,在計算機中,運算是使用的二進制補碼,而正數的補碼是它本身,負數的補碼則是符號位不變,其余按位取反…

組合總和III(力扣216)

這道題在回溯的基礎上加入了剪枝操作。回溯方面我就不過多贅述,與組合(力扣77)-CSDN博客 大差不差,主要講解一下剪枝(下面的代碼也有回溯操作的詳細注釋)。我們可以發現,如果我們遞歸到后面,可能集合過小,無法滿足題目…

hot100(8)

71.10. 正則表達式匹配 - 力扣(LeetCode) 動態規劃 題解:10. 正則表達式匹配題解 - 力扣(LeetCode) 72.5. 最長回文子串 - 力扣(LeetCode) 動態規劃 1.dp數組及下標含義 dp[i][j] : 下標i到…

二進制/源碼編譯安裝httpd 2.4,提供系統服務管理腳本并測試

方法一:使用 systemd 服務文件 安裝所需依賴 yum install gcc make apr-devel apr-util-devel pcre-devel 1.下載源碼包 wget http://archive.apache.org/dist/httpd/httpd-2.4.62.tar.gz 2.解壓源碼 tar -xf httpd-2.4.62.tar.gz cd httpd-2.4.62 3.編譯安裝 指定…

Java 中 LinkedList 的底層源碼

在 Java 的集合框架中,LinkedList是一個獨特且常用的成員。它基于雙向鏈表實現,與數組結構的集合類如ArrayList有著顯著差異。深入探究LinkedList的底層源碼,有助于我們更好地理解其工作原理和性能特點,以便在實際開發中做出更合適…

Level2逐筆成交逐筆委托數據分享下載:20250127

Level2逐筆成交逐筆委托數據分享下載 采用Level2逐筆成交與逐筆委托的毫秒級數據,可以揭露眾多有用信息,如莊家策略、偽裝交易,讓所有交易行為透明化。這對于交易高手的策略分析極為有用,對人工智能領域的機器學習也極為合適&…

金蝶云星空k3cloud webapi報“java.lang.Class cannot be cast to java.lang.String”的錯誤

最近在對接金蝶云星空k3cloud webapi時,報一個莫名其妙的轉換異常,具體如下: 同步部門異常! ERP接口登錄異常:java.lang.Class cannot be cast to java.lang.String at com.jkwms.k3cloudSyn.service.basics.DeptK3CloudService.…

【Android】jni開發之導入opencv和libyuv來進行圖像處理

做視頻圖像處理時需要對其進行水印的添加,放在應用層調用工具性能方面不太滿意,于是當下采用opencvlibyuv方法進行處理。 對于Android的jni開發不是很懂,我的需求是導入opencv方便在cpp中調用,但目前找到的教程都是把opencv作為模…

【MySQL】centos 7 忘記數據庫密碼

vim /etc/my.cnf文件; 在[mysqld]后添加skip-grant-tables(登錄時跳過權限檢查) 重啟MySQL服務:sudo systemctl restart mysqld 登錄mysql,輸入mysql –uroot –p;直接回車(Enter) 輸…

國產編輯器EverEdit - 自定義標記使用詳解

1 自定義標記使用詳解 1.1 應用場景 當閱讀日志等文件,用于調試或者檢查問題時,往往日志中會有很多關鍵性的單詞,比如:ERROR, FATAL等,但由于文本模式對這些關鍵詞并沒有突出顯示,造成檢查問題時&#xff…