feign 默認只支持application/json 類型的響應報文,如果響應的並非這種類型,則無法解析,此時需要自定義實現
案例如下:
package com.eno.config.feign;
import java.util.ArrayList;
import java.util.List;
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
/**
*
* @ClassName: FeignMessageConverter
* @Description: 新增feign 消息解碼類型支持
* @author eno
* @date :2020年1月7日 下午1:33:21
*/
public class FeignMessageConverter extends MappingJackson2HttpMessageConverter {
public FeignMessageConverter() {
List<MediaType> mediaTypes = new ArrayList<>();
mediaTypes.add(MediaType.TEXT_PLAIN);
mediaTypes.add(MediaType.TEXT_HTML);
setSupportedMediaTypes(mediaTypes);
}
}
2.自定義實現decoder
@Bean
public Decoder feignDecoder() {
FeignMessageConverter converter = new FeignMessageConverter();
ObjectFactory<HttpMessageConverters> objectFactory = () -> new HttpMessageConverters(converter);
return new SpringDecoder(objectFactory);
}