随着微信小程序的快速发展,管理小程序的状态变得越来越重要。若某个小程序因违规被封禁,开发者需要及时知晓。本文介绍了如何使用 Java 批量检测多个微信小程序的封禁状态,并通过接口获取每个小程序的最新状态。

项目代码

import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONObject;

public class MiniProgramStatusChecker {

    // 要检查的小程序 App ID 列表
    private static String[] appIds = {"appid1", "appid2", "appid3"}; // 请替换为实际的 App ID

    // 定义 API URL 模板
    private static String apiUrlTemplate = "https://down.ychengsnsm.com/xcx/checkxcx.php?appid=%s";

    // 发送 HTTP 请求并获取响应
    public static JSONObject getAppStatus(String appId) {
        try {
            String apiUrl = String.format(apiUrlTemplate, appId);
            HttpURLConnection connection = (HttpURLConnection) new URL(apiUrl).openConnection();
            connection.setRequestMethod("GET");
            connection.setConnectTimeout(30000); // 设置超时(毫秒)
            connection.setReadTimeout(30000); // 设置读取超时(毫秒)

            // 获取响应
            BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            StringBuilder responseBuilder = new StringBuilder();
            String line;
            while ((line = reader.readLine()) != null) {
                responseBuilder.append(line);
            }
            reader.close();

            // 解析响应
            return new JSONObject(responseBuilder.toString());

        } catch (Exception e) {
            System.out.println("请求失败: " + e.getMessage());
            return null;
        }
    }

    // 批量检查每个小程序的状态
    public static void checkMiniProgramStatus() {
        for (String appId : appIds) {
            JSONObject responseData = getAppStatus(appId);

            if (responseData != null) {
                if (responseData.has("code")) {
                    int code = responseData.getInt("code");
                    switch (code) {
                        case 1:
                            System.out.println(appId + ": 小程序状态正常");
                            break;
                        case 0:
                            System.out.println(appId + ": 小程序已被封禁");
                            break;
                        default:
                            System.out.println(appId + ": 接口返回了未知的状态码 (" + code + ")");
                            break;
                    }
                } else {
                    System.out.println(appId + ": 接口返回的数据格式不符合预期");
                }
            } else {
                System.out.println(appId + ": 请求失败");
            }
        }
    }

    public static void main(String[] args) {
        checkMiniProgramStatus();
    }
}

代码说明

  1. API URL 模板

    • 代码中的 apiUrlTemplate 是一个包含占位符的 API 地址,用于通过 App ID 查询小程序的封禁状态。通过 String.format() 函数将实际的小程序 App ID 填入 URL 中,形成完整的请求地址。
  2. HTTP 请求函数

    • getAppStatus(String appId) 函数用于发送 HTTP GET 请求,并返回响应的 JSON 数据。
    • 使用 HttpURLConnection 进行网络请求,通过 BufferedReader 获取返回的内容,并通过 JSONObject 解析响应数据。
  3. 批量检测小程序状态

    • checkMiniProgramStatus() 方法遍历所有小程序的 App ID,调用 getAppStatus() 方法获取每个小程序的状态。
    • 根据返回的 code 字段判断小程序的封禁状态:

      • 1 表示小程序状态正常。
      • 0 表示小程序已被封禁。
      • 其他值表示接口返回了未知的状态码。
  4. 错误处理

    • 在进行 HTTP 请求时,如果发生网络错误或请求超时,异常信息会被捕获并输出。
    • 如果接口返回的数据格式不是预期的 JSON 格式,代码会输出错误提示。

使用说明

  1. 设置要检查的小程序 App ID

    • 在代码中,appIds 数组包含了需要检查的小程序 App ID 列表。你需要将此数组中的 appid1, appid2, appid3 替换为实际的小程序 ID。例如:

      appIds = new String[]{"wx1234567890abcdef", "wxabcdef1234567890"};

      你可以根据需要添加更多的小程序 App ID。

  2. 上传并运行 Java 程序

    • 将修改后的 Java 文件上传至你的服务器,确保你的服务器支持 Java 环境。
    • 使用命令行编译并运行该 Java 文件。例如:

      javac MiniProgramStatusChecker.java
      java MiniProgramStatusChecker
  3. 查看结果

    • 当程序运行时,它会检查每个小程序的封禁状态,并在控制台输出相应的结果。例如:

      wx1234567890abcdef: 小程序状态正常
      wxabcdef1234567890: 小程序已被封禁
  4. 常见错误及解决方案

    • HTTP 错误:如果遇到 HTTP 错误,可能是网络连接问题或接口不可用。请检查 API 地址是否正确,并确保服务器可以访问外部网络。
    • 无效的 JSON 响应:如果接口返回的数据格式不正确,可能是接口本身的问题。你可以检查接口是否有变化,或联系提供方确认接口的返回格式。

通过上述 Java 代码,您可以方便地批量检查多个微信小程序的封禁状态,并根据返回结果及时做出响应。


1 声望2 粉丝