@RequestMapping(value = "/test/getData",
method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_UTF8_VALUE,
consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
String getData(
@RequestParam(value = "param") String param
);
现在服务A要通过Fegin调用上面服务B的getData接口,这时候 如果参数过长,会报URI Too Long 参数过长错误。
为啥接口明明定义的Post方法还会报参数过长呢?查了下资料 大概就是 fegin 接口 如果用@RequestParam注解接收参数,底层会把参数拼到url上变成Get请求。
解决办法:
用@RequestBoby接收参数,这样底层就不会把参数拼到url上。
或者增加配置(没试过这个方法,不知道行不行)
# tomcat 配置
server.tomcat.max-http-form-post-size
# jetty 配置
server.jetty.max-http-form-post-size