Feign 400 – Bad Request

今天收到同事反馈的问题。

Caused by: feign.FeignException$BadRequest: [400 Bad Request] during
[POST] to
[http://gateway-v2-se-java/meta/metaClass/metaGetAllChildren?className=Dialog&currentClass=false]
[MetaClassRemote#metaGetAllChildren(String,Boolean)]: [<!doctype
html>HTTP Status 400 – Bad<br/> Request

出问题的源代码:

@RequestMapping(value = "/test", headers = "{Content-Type=application/json;charset=UTF-8}", method = RequestMethod.POST)
Resp<List<CommonVo>> getChildren(@RequestParam("name") String name, @RequestParam(required = false, value = "currentName") Boolean currentName);

造成feign调用产生400 bad request的原因有很多,一般遇到的以下几种:

  1. 客户端请求参数和服务端请求参数不一致。
  2. 请求的header过大或参数过大
  3. 请求的header本身有问题

分别的对应解决方案有:
4. 修改源代码,让请求参数一致。
5. 设置以下参数:

server:
  port: 8080
  max-http-header-size: 102400 #调大服务提供者的header参数(微服务较多 不太适用)
  1. header本身的问题,通常在上个方案中已经包含,但是还有其他原因。
    比如,我遇到的问题是代码中的header参数格式写错了。
    在这里插入图片描述
    注意这里的双引号,正确写法应该是:
headers = {"Content-Type=application/json;charset=UTF-8"}

有问题,还是要先从源代码查起。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值