Administrator
11 hours ago 34f9584e3694be322f28b7f6697fc656946ecea2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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;
    }
}