如何解決目前微信小遊戲無法進行網路請求的問題

騎摩托馬斯發表於2018-01-03

前言

在昨天發過的如何獲得微信小遊戲跳一跳原始碼的文章中,記錄了我個人在獲取微信小遊戲跳一跳原始碼中的實踐。

跟大家在交流中很多人說原始碼是壓縮過的可讀性很差,拿到原始碼也沒有意義。但是其實只要將程式碼格式化後,程式碼的可讀性還是很高的,而且通過微信開發工具斷點除錯,一些邏輯還是很容易梳理清楚的。

如何解決目前微信小遊戲無法進行網路請求的問題

上圖就是通過斷點除錯找到了最終提交 score 的網路請求

另外問的最多的就是目前小遊戲無法進行網路請求的問題,如下圖

如何解決目前微信小遊戲無法進行網路請求的問題

這是因為不管是小遊戲還是小程式,網路請求都是受到限制的,需要在微信公眾平臺中註冊合法的伺服器域名,如下圖所示

如何解決目前微信小遊戲無法進行網路請求的問題

但是目前小遊戲還沒有開放註冊,所以是無法進行伺服器域名配置的,而微信開發工具提供的測試小遊戲 APP ID 是 wx6ac3f5090a6b99c5 是沒有配置任何的伺服器域名的

如何解決目前微信小遊戲無法進行網路請求的問題

但是在萬能的抓包工具 Charles 幫助下,是可以打破這個限制的

對 Charles 不太瞭解的可以參考一下這篇文章

操作

首先開啟 Charles 並執行 Charles 對本地電腦進行 HTTPS 抓包,因為對 HTTPS 進行抓包需要安裝證書,具體的操作步驟請參考 Charles 從入門到精通

之後開啟微信開發工具,然後新建一個專案,使用 wx6ac3f5090a6b99c5 做為 APP ID,這是微信預設小遊戲測試開發 ID,然後新建一個空的小遊戲專案,點選確定之後,檢視 Charles 的控制檯

找到以下的訪問請求

https://servicewechat.com/wxa-dev-logic/batchgetappattr
複製程式碼

如何解決目前微信小遊戲無法進行網路請求的問題

檢視該請求的返回包體,會發現預設返回的伺服器域名是空陣列

如何解決目前微信小遊戲無法進行網路請求的問題

在這裡只要使用 Charles 的 Map 功能在請求返回的 reponse 資訊裡面,加入我們想訪問的伺服器域名,就可以突破微信開發工具對小遊戲網路請求的限制了

在 Charles 的選單中,選擇 “Tools”-> “Map Local” 即可進入到相應功能的設定頁面

如何解決目前微信小遊戲無法進行網路請求的問題

然後在對應配置選項中輸入以下資訊,本地的 reponse 檔案可以參考這裡

如何解決目前微信小遊戲無法進行網路請求的問題

完成以上配置之後,退出微信開發者工具,再開啟剛才新建立的專案,就會發現此時的專案設定裡面已經有了我們想要新增的伺服器域名了

如何解決目前微信小遊戲無法進行網路請求的問題

而且除錯小遊戲的網路模組,發現網路是可以進行訪問的

如何解決目前微信小遊戲無法進行網路請求的問題

總結

目前小遊戲還沒有開放註冊,但是可以先通過這種方式突破小遊戲對於網路請求的訪問限制,提前進行開發。

相關文章