【错误复盘】Could not extract response: no suitable HttpMessageConverter found for response 【xxx】

【错误复盘】Could not extract response: no suitable HttpMessageConverter found for response 【xxx】and content type 【text/json;charset=UTF-8】

遇到这个错误是我需要调用一个其他服务的接口获取结构体来封装到自己的接口上去,但是我并不知道具体的类型结构(因为不是我开发的),只能根据postman 去调用看返回体类型去定义。这一路上都一帆风顺。结构体定义完成。启动调用接口报错了。报错正如标题所示。
整体过程是用FeignClient调用的。之前调用外部接口都是这么干的,也没出过啥问题。

问题搜索阶段

既然出现问题,就开始找吧,搜寻了一堆类似的问题。

解法一:FeignClinet调用接口上加入注解

@PostMapping(value = "/test", consumes = MediaType.APPLICATION_JSON_VALUE)

实际表现没啥用,还是仍然报这个错

解法二:FeignClinet调用接口上加@ResponseBody注解

我直接贴链接了,我单加了@ResponseBody还是没用,具体下面涉及到修改配置,大家可以参考下面这个博客。
FeignClinet调用接口上加@ResponseBody注解

问题摸索阶段

试了几种方法都不管用,就可以尝试接收的对象是不是他不认识,开始尝试FeignClinet调用接口返回为String,发现没用报错了,把String 类型打印出来数据也没有问题。
没办法,只能先用String类型接着,然后再用JSON工具类解析,解决了这个问题。

 String getId = ServiceFeignClient.getId(RequestDTOGetIdDTO getIdDTO= objectMapper.readValue(getId, GetIdDTO.class);

问题复盘阶段

回头看了一下问题所在
postman 调用外部接口的那个响应头 Content-Type = text/json;charset=UTF-8 正如标题报错所示。
但实际上我调用自己的接口 Content-Type = application/json ,
这两者明显不对应。但是目前也没有找到能够修改的方式。所以先临时记录下来,后续如果遇到了好的解决方案欢迎讨论。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值