原来项目的服务端和客户端都是使用tomcat服务器, 这次服务器使用的是C#服务器,发现它对如下请求返回的是411错误代码
1 2 3 |
@PostMapping(value = "/lift/list") SimpleResponse<List> query( @RequestParam(value = "liftCodes", required = false) List liftCodes); |
通过tcpdum抓包发现,@RequestParam注解导致feign Client将liftCodes参数拼接到url 中了。 也就是请求大概这个样子
/lift/list?liftCodes=xxx 虽然是POST请求但是确实没有CONTENT-LENGTH 请求头
将请求参数的注解从@RequestParam改成@RequestBody 解决问题
1 2 3 |
@PostMapping(value = "/lift/list", headers="Content-Type=application/json;charset=UTF-8") SimpleResponse<List> query( @RequestBody(required = false) List liftCodes); |
Posted in: spring practise
Comments are closed.