Spring Boot Feign Client和Sping Boot 错误,列表参数超过1600项

mzsu5hc0  于 7个月前  发布在  Spring
关注(0)|答案(1)|浏览(79)

我尝试使用OpenFeign消费一个服务,方法是GET,作为参数,我发送一个ID列表来在DynamoDB中进行查询,当ID列表很小时,一切都正常工作,但在真实的情况下,如果列表非常大,例如1600项,则集成失败,请求永远不会到达客户端,而响应是:

feign.FeignException$BadRequest: [400] during [GET] to [http://<host>:<port>/config?id=7479c3943b4e706759d668fe63c0dff5&id=796dfc42ff2bd9a30b3dd30d6a9ca2be&<multipleIDs...>] [MyClient#getInfoById(List)]: [<!doctype html><html lang="en"><head><title>HTTP Status 400 – Bad Request</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;... (435 bytes)]

字符串
执行具有许多标识符的查询的正确集成是什么?

shstlldc

shstlldc1#

问题:

我在使用OpenFeign发出一个包含大量ID的GET请求时遇到了一个问题。请求失败了,我发现这个问题与大负载大小有关。

解决方案:

为了解决这个问题,我改用POST请求来处理大负载。我没有在URL中发送ID列表作为查询参数,而是将其作为JSON数组发送到请求体中。POST请求更适合处理大负载。

修订方法:

1.将请求方法更改为POST。
1.将请求主体构造为包含ID列表的JSON数组。
1.更新服务器端代码,使其在请求体中期望ID列表,并相应地处理它。
这种方法使我能够成功地处理具有大量ID的请求,而不会遇到与大小相关的问题。
我希望这篇文章能帮助那些在GET请求中遇到大负载的类似问题的人。如果你有任何问题或需要进一步的帮助,请随时提问。

相关问题