概述:
這段Go代碼通過請求接口 https://api.52an.fun/xcx/checkxcx.php?appid={appid},批量檢查多個微信小程序是否被封禁。接口返回的JSON數據中包含 code 字段,code 為 1 表示小程序正常,code 為 0 表示小程序被封禁,並且會返回封禁原因。程序會根據返回結果輸出每個小程序的狀態。
Go代碼示例:
package main
import (
"encoding/json"
"fmt"
"net/http"
"time"
)
type CheckResult struct {
Code int `json:"code"`
AppID string `json:"appid"`
Status string `json:"status"`
}
var appIDs = []string{
"wx81894c6dbb81c2e2", // 示例1
"wx1234567890abcdef", // 示例2
"wxabcdef1234567890", // 示例3
// 可以繼續添加更多的AppID
}
const apiURL = "https://api.52an.fun/xcx/checkxcx.php?appid="
func main() {
// 批量檢查小程序狀態
for _, appID := range appIDs {
status := checkMiniProgramStatus(appID)
fmt.Printf("小程序 AppID: %s, 狀態: %s\n", appID, status)
}
}
// 請求接口檢查小程序狀態
func checkMiniProgramStatus(appID string) string {
// 創建請求
url := apiURL + appID
client := &http.Client{Timeout: 10 * time.Second}
// 發起GET請求
resp, err := client.Get(url)
if err != nil {
return fmt.Sprintf("請求失敗: %v", err)
}
defer resp.Body.Close()
// 解析返回的JSON
var result CheckResult
if err := json.NewDecoder(resp.Body).Decode(&result); err != nil {
return fmt.Sprintf("JSON解析失敗: %v", err)
}
// 根據返回的狀態判斷
if result.Code == 1 {
return "正常"
} else if result.Code == 0 {
return "被封禁,原因:" + result.Status
}
return "未知狀態"
}
代碼介紹:
- 請求接口:代碼通過
http.Get方法發送GET請求,查詢微信小程序的狀態。URL 需要傳入小程序的appid參數。 - 數據解析:響應的數據格式為JSON,代碼使用
json.NewDecoder方法解析響應數據,映射到CheckResult結構體中。結構體中包含了code、appid和status字段。 - 批量檢查:程序定義了一個
appIDs列表,存儲需要檢查的小程序的 AppID。通過循環遍歷appIDs,代碼會批量請求每個小程序的狀態。 - 結果輸出:根據返回的
code字段,代碼輸出每個小程序的狀態。如果code為1,表示小程序正常;如果code為0,表示小程序被封禁,並且會顯示封禁原因。 - 錯誤處理:如果請求失敗(如網絡問題、接口錯誤),程序會捕獲並輸出錯誤信息。同時,如果JSON解析失敗,也會顯示相應的錯誤。
使用方法:
- 依賴:該代碼不依賴於任何外部庫,Go語言內置了HTTP請求和JSON解析功能。
- 運行程序:在Go環境下,直接將上述代碼保存到文件中(例如
main.go),然後運行程序。程序會輸出每個小程序的狀態。
示例輸出:
小程序 AppID: wx81894c6dbb81c2e2, 狀態: 被封禁,原因:存在繞開、規避或對抗平台審核監管的行為
小程序 AppID: wx1234567890abcdef, 狀態: 正常
小程序 AppID: wxabcdef1234567890, 狀態: 被封禁,原因:違反相關政策
擴展功能:
- 多線程支持:為提高批量檢查效率,可以使用Go的併發機制(如 goroutines)來並行檢查多個小程序的狀態。
- 日誌記錄:可以將每次檢查的結果記錄到日誌文件中,便於後續查看和分析。