微信小遊戲:無法進行網絡請求的(de)解決方案
發表時(shí)間:2021-3-31
發布人(rén):融晨科技
浏覽次數:83
跟大(dà)家在(zài)交流中很多人(rén)說(shuō)源碼是(shì)壓縮過的(de)可讀性很差,拿到(dào)源碼也(yě)沒有意義。但是(shì)其實隻要(yào / yāo)将代碼格式化後,代碼的(de)可讀性還是(shì)很高的(de),而(ér)且通過微信開發工具斷點調試,一些邏輯還是(shì)很容易梳理清楚的(de)。
上(shàng)圖就(jiù)是(shì)通過斷點調試找到(dào)了(le/liǎo)最終提交 score
的(de)網絡請求
另外問的(de)最多的(de)就(jiù)是(shì)目前小遊戲無法進行網絡請求的(de)問題,如下圖
這(zhè)是(shì)因爲(wéi / wèi)不(bù)管是(shì)小遊戲還是(shì)小程序,網絡請求都是(shì)受到(dào)限制的(de),需要(yào / yāo)在(zài)微信公衆平台中注冊合法的(de)服務器域名,如下圖所示
但是(shì)目前小遊戲還沒有開放注冊,所以(yǐ)是(shì)無法進行服務器域名配置的(de),而(ér)微信開發工具提供的(de)測試小遊戲 APP ID 是(shì) wx6ac3f5090a6b99c5
是(shì)沒有配置任何的(de)服務器域名的(de)

但是(shì)在(zài)萬能的(de)抓包工具Charles 幫助下,是(shì)可以(yǐ)打破這(zhè)個(gè)限制的(de)
對 Charles 不(bù)太了(le/liǎo)解的(de)可以(yǐ)參考一下這(zhè)篇文章
操作
首先打開 Charles 并運行 Charles 對本地(dì / de)電腦進行 HTTPS
抓包,因爲(wéi / wèi)對 HTTPS
進行抓包需要(yào / yāo)安裝證書,具體的(de)操作步驟請參考Charles 從入門到(dào)精通
之(zhī)後打開微信開發工具,然後新建一個(gè)項目,使用 wx6ac3f5090a6b99c5
做爲(wéi / wèi) APP ID,這(zhè)是(shì)微信默認小遊戲測試開發 ID,然後新建一個(gè)空的(de)小遊戲項目,點擊确定之(zhī)後,查看 Charles 的(de)控制台
找到(dào)以(yǐ)下的(de)訪問請求
https://servicewechat.com/wxa-dev-logic/batchgetappattr
查看該請求的(de)返回包體,會發現默認返回的(de)服務器域名是(shì)空數組
在(zài)這(zhè)裏隻要(yào / yāo)使用 Charles 的(de) Map 功能在(zài)請求返回的(de) reponse 信息裏面,加入我們想訪問的(de)服務器域名,就(jiù)可以(yǐ)突破微信開發工具對小遊戲網絡請求的(de)限制了(le/liǎo)
在(zài) Charles 的(de)菜單中,選擇 “Tools”-> “Map Local” 即可進入到(dào)相應功能的(de)設置頁面
然後在(zài)對應配置選項中輸入以(yǐ)下信息,本地(dì / de)的(de) reponse 文件可以(yǐ)參考 這(zhè)裏
完成以(yǐ)上(shàng)配置之(zhī)後,退出(chū)微信開發者工具,再打開剛才新建立的(de)項目,就(jiù)會發現此時(shí)的(de)項目設置裏面已經有了(le/liǎo)我們想要(yào / yāo)添加的(de)服務器域名了(le/liǎo)
而(ér)且調試小遊戲的(de)網絡模塊,發現網絡是(shì)可以(yǐ)進行的(de)訪問的(de)
總結
目前小遊戲還沒有開放注冊,但是(shì)可以(yǐ)先通過這(zhè)種方式突破小遊戲對于(yú)網絡請求的(de)訪問限制,提前進行開發。