项目代码
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();
}
}
代码说明
-
API URL 模板:
- 代码中的
apiUrlTemplate
是一个包含占位符的 API 地址,用于通过 App ID 查询小程序的封禁状态。通过String.format()
函数将实际的小程序 App ID 填入 URL 中,形成完整的请求地址。
- 代码中的
-
HTTP 请求函数:
getAppStatus(String appId)
函数用于发送 HTTP GET 请求,并返回响应的 JSON 数据。- 使用
HttpURLConnection
进行网络请求,通过BufferedReader
获取返回的内容,并通过JSONObject
解析响应数据。
-
批量检测小程序状态:
checkMiniProgramStatus()
方法遍历所有小程序的 App ID,调用getAppStatus()
方法获取每个小程序的状态。- 根据返回的
code
字段判断小程序的封禁状态:1
表示小程序状态正常。0
表示小程序已被封禁。- 其他值表示接口返回了未知的状态码。
-
错误处理:
- 在进行 HTTP 请求时,如果发生网络错误或请求超时,异常信息会被捕获并输出。
- 如果接口返回的数据格式不是预期的 JSON 格式,代码会输出错误提示。
使用说明
-
设置要检查的小程序 App ID:
- 在代码中,
appIds
数组包含了需要检查的小程序 App ID 列表。你需要将此数组中的appid1
,appid2
,appid3
替换为实际的小程序 ID。例如:
appIds = new String[]{"wx1234567890abcdef", "wxabcdef1234567890"};
你可以根据需要添加更多的小程序 App ID。
- 在代码中,
-
上传并运行 Java 程序:
- 将修改后的 Java 文件上传至你的服务器,确保你的服务器支持 Java 环境。
- 使用命令行编译并运行该 Java 文件。例如:
javac MiniProgramStatusChecker.java java MiniProgramStatusChecker
-
查看结果:
- 当程序运行时,它会检查每个小程序的封禁状态,并在控制台输出相应的结果。例如:
wx1234567890abcdef: 小程序状态正常 wxabcdef1234567890: 小程序已被封禁
-
常见错误及解决方案:
- HTTP 错误:如果遇到 HTTP 错误,可能是网络连接问题或接口不可用。请检查 API 地址是否正确,并确保服务器可以访问外部网络。
- 无效的 JSON 响应:如果接口返回的数据格式不正确,可能是接口本身的问题。你可以检查接口是否有变化,或联系提供方确认接口的返回格式。