From 34f9584e3694be322f28b7f6697fc656946ecea2 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 24 Mar 2026 21:09:43 +0800
Subject: [PATCH] feat(common): 添加HTTP消息转换器配置支持markdown和文本类型

---
 src/main/java/cc/mrbird/febs/common/configure/HttpMessageConverterConfigure.java |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/configure/HttpMessageConverterConfigure.java b/src/main/java/cc/mrbird/febs/common/configure/HttpMessageConverterConfigure.java
new file mode 100644
index 0000000..bccf143
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/common/configure/HttpMessageConverterConfigure.java
@@ -0,0 +1,38 @@
+package cc.mrbird.febs.common.configure;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.MediaType;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.List;
+
+@Configuration
+public class HttpMessageConverterConfigure {
+
+    @Bean
+    public MappingJackson2HttpMessageConverter markdownHttpMessageConverter() {
+        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
+
+        ObjectMapper mapper = new ObjectMapper();
+        // 配置更宽松的 JSON 解析选项
+        mapper.configure(com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
+        mapper.configure(com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER, true);
+
+        converter.setObjectMapper(mapper);
+        converter.setDefaultCharset(StandardCharsets.UTF_8);
+
+        // 支持 text/markdown 和 text/plain 类型
+        List<MediaType> supportedMediaTypes = new ArrayList<>();
+        supportedMediaTypes.add(MediaType.APPLICATION_JSON);
+        supportedMediaTypes.add(MediaType.TEXT_PLAIN);
+        supportedMediaTypes.add(new MediaType("text", "markdown", StandardCharsets.UTF_8));
+        supportedMediaTypes.add(new MediaType("text", "html", StandardCharsets.UTF_8));
+
+        converter.setSupportedMediaTypes(supportedMediaTypes);
+        return converter;
+    }
+}

--
Gitblit v1.9.1