我有以下带有BODY的GET方法的REST控制器,适用于测试和邮递员
@RestController
@RequestMapping(value = "/xxx")
public class Controller {
@GetMapping({"/find"})
public LocalDateTime findMax(@RequestBody List<ObjectId> ids) {
//return sth
}
}
但是当使用FeignClient来调用服务时,而是生成一个POST请求的GET请求(忽略@GetMapping注释)
@FeignClient
public interface CoveragesServiceResource extends CoveragesService {
@GetMapping({"/find"})
LocalDateTime findMax(@RequestBody List<ObjectId> ids);
}
发出错误:
Request method 'POST' not supported
答案 0 :(得分:2)
GET请求在技术上可以有身体,但身体应该没有explained in this answer的含义。您可能能够使用正文声明GET端点,但某些网络库和工具根本不支持它,例如Jersey可以配置为允许它,但RESTEasy不能as per this answer。
建议将/find
声明为POST或不使用@RequestBody
。