fix: submitConfig 和 access-result 接口兼容 content/config 传入 JSON 对象而非字符串

This commit is contained in:
mediabot-pt
2026-07-01 00:59:32 +08:00
parent 1623dc927c
commit 1a3ba423f4
2 changed files with 15 additions and 2 deletions

View File

@@ -37,7 +37,7 @@ public class AccessResultController {
String configVersion = (String) payload.get("configVersion"); String configVersion = (String) payload.get("configVersion");
String contentType = (String) payload.getOrDefault("contentType", "html"); String contentType = (String) payload.getOrDefault("contentType", "html");
String content = (String) payload.get("content"); String content = toStringValue(payload.get("content"));
String url = (String) payload.get("url"); String url = (String) payload.get("url");
Integer statusCode = payload.get("statusCode") instanceof Integer i ? i : null; Integer statusCode = payload.get("statusCode") instanceof Integer i ? i : null;
Integer responseTimeMs = payload.get("responseTimeMs") instanceof Integer i ? i : null; Integer responseTimeMs = payload.get("responseTimeMs") instanceof Integer i ? i : null;
@@ -133,4 +133,10 @@ public class AccessResultController {
int affected = accessResultService.batchValidateUrl(siteId, url, isValid); int affected = accessResultService.batchValidateUrl(siteId, url, isValid);
return ApiResponse.success(Map.of("affected", affected)); return ApiResponse.success(Map.of("affected", affected));
} }
private String toStringValue(Object obj) {
if (obj == null) return null;
if (obj instanceof String s) return s;
try { return new com.fasterxml.jackson.databind.ObjectMapper().writeValueAsString(obj); } catch (Exception e) { return null; }
}
} }

View File

@@ -25,6 +25,7 @@ public class ConfigController {
private final ConfigService configService; private final ConfigService configService;
private final CachedStorageService storageService; private final CachedStorageService storageService;
private static final com.fasterxml.jackson.databind.ObjectMapper objectMapper = new com.fasterxml.jackson.databind.ObjectMapper();
public ConfigController(ConfigService configService, CachedStorageService storageService) { public ConfigController(ConfigService configService, CachedStorageService storageService) {
this.configService = configService; this.configService = configService;
@@ -127,7 +128,7 @@ public class ConfigController {
HttpServletRequest request) { HttpServletRequest request) {
String version = (String) payload.get("version"); String version = (String) payload.get("version");
String configJson = (String) payload.get("config"); String configJson = toStringValue(payload.get("config"));
String schemaVersion = (String) payload.get("schemaVersion"); String schemaVersion = (String) payload.get("schemaVersion");
if (version == null || configJson == null) { if (version == null || configJson == null) {
@@ -139,4 +140,10 @@ public class ConfigController {
SiteConfig config = configService.submitConfig(siteId, version, configJson, schemaVersion, submitterId); SiteConfig config = configService.submitConfig(siteId, version, configJson, schemaVersion, submitterId);
return ApiResponse.success(configService.toDTO(config)); return ApiResponse.success(configService.toDTO(config));
} }
private String toStringValue(Object obj) {
if (obj == null) return null;
if (obj instanceof String s) return s;
try { return objectMapper.writeValueAsString(obj); } catch (Exception e) { return null; }
}
} }