gpt4 book ai didi

java - @FeignClient 强制@GetMapping 和@RequestBody 进行POST

转载 作者:搜寻专家 更新时间:2023-11-01 03:16:13 24 4
gpt4 key购买 nike

我有以下带有 BODY 的 GET 方法的 REST Controller ,它适用于测试和 postman

@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

最佳答案

GET 请求在技术上可以有正文,但正文应该没有意义,如 explained in this answer .您可能能够声明一个带有正文的 GET 端点,但一些网络库和工具根本不支持它,例如Jersey 可以配置为允许它,但 RESTEasy 不能 as per this answer .

建议将 /find 声明为 POST 或不使用 @RequestBody

关于java - @FeignClient 强制@GetMapping 和@RequestBody 进行POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50861584/

24 4 0
文章推荐: java - Micrometer - Prometheus Gauge 显示 NaN
文章推荐: java - Oracle 的 Collection 教程令人困惑