微信小程序抓包詳解

一、抓包的基本概念

1、抓包是什麼

在網絡通信過程中,數據是通過網絡傳輸的,而抓包就是指獲取這些網絡通信中傳輸的數據的技術,其實就是一個數據攔截的過程。在計算機通信的過程中,通信數據是以數據包為單位發送的。抓包可以獲取到這些數據包並對其進行分析和處理。

2、為什麼需要抓包

在開發微信小程序時,我們需要通過接口與後端進行通信,為了保證數據傳輸的正確性和安全性,我們需要對請求和響應數據進行監測和調試。此時,抓包能夠幫助我們觀察和修改我們應用的網絡請求。同時,抓包也有助於我們分析應用的性能及問題。

3、抓包的工具

常用的抓包工具有Fiddler、Charles、Wireshark等。在本文中,我們以Fiddler為例,介紹抓包的具體操作。

二、Fiddler的使用方法

1、下載並安裝Fiddler

官網下載地址:https://www.telerik.com/download/fiddler/fiddler4
安裝過程中需要設置代理,若沒仔細設置,請在電腦網絡設置中將代理關掉!

2、啟動Fiddler

安裝完成後,雙擊桌面快捷方式即可啟動Fiddler。啟動後,我們可以在Fiddler的窗口中看到主要的界面:

(圖片為Fiddler主界面)

3、設置抓包規則

在Fiddler的「Rules」菜單中,選擇「Customize Rules」選項。這個文件可以自定義抓取請求,修改響應,添加頭部或cookie等信息。

// 比如我們在請求的header中通過User-Agent設置自定義瀏覽器類型為「fiddler」
static function OnBeforeRequest(oSession: Session) {
    if (oSession.uriContains("weixin")) {
        oSession["ui-customcolumn"] = "Attention";
        oSession.oRequest["User-Agent"] = "fiddler";
    }
}

通過在代碼中自定義「fiddler」作為User-Agent,我們就可以在抓包的過程中偽裝成fiddler瀏覽器,以便於測試自定義消息處理程序。此外,還可以設置過濾規則以快速篩選所需的請求。

4、進行抓包

當設置完成後,點擊Fiddler的「Start」按鈕,即可開始進行抓包,Fiddler將自動對本機的網絡進行截取和分析。此時,我們會在主界面的Session列表中看到所有的會話(請求和響應)並能夠按源(客戶端)或目的地(服務器)端口進行篩選。在展開每個標記時,我們可以看到每個會話所包含的詳細信息。

// 如下是一段微信小程序請求API的示例
GET https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN HTTP/1.1
Host: api.weixin.qq.com
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:44.0) Gecko/20100101 Firefox/44.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: pgv_pvi=941423616; mm_lang=zh_CN; ts_refer=www.sogou.com/link; ts_uid=88777486

5、修改請求/響應內容

在抓包的過程中,我們有時需要修改請求/響應內容。例如:

// 修改請求內容
static function OnBeforeRequest(oSession: Session) {
    // 判斷請求是否為某個API,若是則修改請求內容
    if (oSession.fullUrl.Contains("XXX")) {
        oSession.fullUrl = oSession.fullUrl.Replace("XXX", "YYY");
        // 獲取請求內容,並替換
        oSession.RequestBody = oSession.RequestBody.Replace("value1", "值1");
        oSession.RequestBody = oSession.RequestBody.Replace("value2", "值2");
    }
}

// 修改響應內容
static function OnBeforeResponse(oSession: Session) {
    // 判斷響應是否為某個API,若是則修改響應內容
    if (oSession.fullUrl.Contains("ZZZ")) {
        // 獲取響應內容,並替換
        oSession.ResponseBody = oSession.ResponseBody.Replace("source_value", "target_value");
    }
}

在代碼中,我們可以通過全局替換源內容的方式來修改請求/響應的內容,以達到調試和測試的目的。

三、微信小程序抓包的實踐

在微信小程序開發中,我們可以通過抓包工具Fiddler來查看小程序內全局接口請求和返回信息。

1、開啟Fiddler

打開Fiddler並啟動。

2、配置小程序HTTPS解密

在Fiddler中選擇Tools菜單中的Fiddler Options,彈出窗口中選擇HTTPS標籤,勾選Decrypt HTTPS traffic。此時會提醒生成一個Fiddler生成的根證書,點擊Yes,並選擇Yes,如果電腦操作系統已經允許根證書安裝,則Fiddler會自動安裝相應根證書;如果電腦操作系統未安裝,則需要手動安裝,在http://localhost.:8888/的根目錄中下載根證書並安裝。

3、操作微信開發者工具

在微信開發者工具中,進入設置,點擊常規設置,勾選上Native模擬器(beta),勾選上開啟自定義端口(默認8888),同時勾選上開啟調試模式。之後保存並重啟開發者工具,在調試頁面查看window.location.href即可確認所使用的HTTP請求方法。

如果選擇模擬器為iOS系統,則需要額外勾選上安裝HTTP證書的選項。然後在生成的證書中選擇微信小程序對應的擴展證書進行安裝。安裝完成後,在小程序調試地址前加上fiddler的代理地址即可通過Fiddler抓包。

4、查看微信小程序請求和返回內容

在Fiddler中,我們可以通過過濾器來過濾並查看微信小程序的請求和返回信息。過濾器可以通過添加包含小程序關鍵詞的正則表達式進行匹配,例如:

 // 添加過濾條件,過濾包含關鍵字XXX的所有請求
if (oSession.isHTTPS && oSession.PathAndQuery.ToLower().Contains("XXX")) {
    oSession["ui-color"] = "red";
}

過濾器能夠顯著提高我們的開發效率,讓我們能以更加高效的方式檢查和調試小程序的網絡請求和響應內容。

四、總結

微信小程序是一種新型的移動應用形態,相較於傳統的移動應用,其優點在於更低的開發門檻和更高的運行效率。然而,在開發小程序時,因為小程序是基於網絡進行通信的,因此,網絡接口測試和調試是至關重要的。而抓包工具Fiddler則是網絡調試的利器,能夠幫助我們輕鬆監測和調試我們的網絡請求和響應。在小程序開發中,能夠熟練使用Fiddler抓包並在實踐中快速解決問題,對於提升開發效率和應用質量大有裨益。

原創文章,作者:VZTDP,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/371213.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
VZTDP的頭像VZTDP
上一篇 2025-04-23 00:48
下一篇 2025-04-23 00:48

相關推薦

  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • 爬蟲是一種程序

    爬蟲是一種程序,用於自動獲取互聯網上的信息。本文將從如下多個方面對爬蟲的意義、運行方式、應用場景和技術要點等進行詳細的闡述。 一、爬蟲的意義 1、獲取信息:爬蟲可以自動獲取互聯網上…

    編程 2025-04-29
  • Vb運行程序的三種方法

    VB是一種非常實用的編程工具,它可以被用於開發各種不同的應用程序,從簡單的計算器到更複雜的商業軟件。在VB中,有許多不同的方法可以運行程序,包括編譯器、發佈程序以及命令行。在本文中…

    編程 2025-04-29
  • Python一元二次方程求解程序

    本文將詳細闡述Python一元二次方程求解程序的相關知識,為讀者提供全面的程序設計思路和操作方法。 一、方程求解 首先,我們需要了解一元二次方程的求解方法。一元二次方程可以寫作: …

    編程 2025-04-29
  • 如何使用GPU加速運行Python程序——以CSDN為中心

    GPU的強大性能是眾所周知的。而隨着深度學習和機器學習的發展,越來越多的Python開發者將GPU應用於深度學習模型的訓練過程中,提高了模型訓練效率。在本文中,我們將介紹如何使用G…

    編程 2025-04-29
  • Web程序和桌面程序的區別

    Web程序和桌面程序都是進行軟件開發的方式,但是它們之間存在很大的區別。本文將從多角度進行闡述。 一、運行方式 Web程序運行於互聯網上,用戶可以通過使用瀏覽器來訪問它。而桌面程序…

    編程 2025-04-29
  • 微信小程序和Python數據交互完整指南

    本篇文章將從多個方面介紹如何在微信小程序中實現與Python的數據交互。通過本文的學習,您將掌握如何將微信小程序與後台Python代碼結合起來,實現更豐富的功能。 一、概述 微信小…

    編程 2025-04-29

發表回復

登錄後才能評論