package com.zhixinghe1.ots.config; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.ObjectFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.http.HttpMessageConverters; import org.springframework.cloud.openfeign.support.SpringDecoder; 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 feign.Logger; import feign.RequestInterceptor; import feign.codec.Decoder; /** * @className FeignConfig * @description Feign配置 * @author ChenYL * @date 2023/07/23 20:55 * @version V1.0 **/ @Configuration public class FeignConfig { @Autowired private BizConfig bizConfig; @Bean("myInterceptor") public RequestInterceptor requestInterceptor() { return template -> { template.query("appid", bizConfig.getWechatMiniProgramAppId()).query("secret", bizConfig.getWechatMiniProgramSecret()); }; } /** * 调整Feign日志输出 注:FeignClient只能输出debug等级的日志 * * @return */ @Bean public Logger.Level devLogLevel() { return Logger.Level.FULL; } /** * 增加转换支持 * * @return */ @Bean public Decoder feignDecoder() { Jackson2HttpConverter jackson2HttpConverter = new Jackson2HttpConverter(); ObjectFactory objectFactory = () -> new HttpMessageConverters(jackson2HttpConverter); return new SpringDecoder(objectFactory); } /** * content-type = text/plain 增加JSON转换支持 */ public class Jackson2HttpConverter extends MappingJackson2HttpMessageConverter { public Jackson2HttpConverter() { List mediaTypes = new ArrayList<>(); mediaTypes.add(MediaType.TEXT_PLAIN); setSupportedMediaTypes(mediaTypes); } } }