【发布时间】:2017-09-01 08:10:33
【问题描述】:
我正在尝试实现与此相同的事情:How to use query parameter represented as JSON with Spring RestTemplate?,在restTemplate.exchange() 中将 JSON 字符串作为 URL 参数发送。
接受的答案提到将 JSON 对象作为请求参数发送通常不是一个好主意,因为您可能会遇到 JSON 中的大括号问题。这正是我尝试对 API 进行 GET 调用时发生的情况。由于这是来自另一个系统的 API,我不能要求他们更改格式,并且必须调用 GET 端点,将 JSON 作为参数传递。如何在restTemplate.exchange() 通话中实现这一点?
注意:提到的相关问题并未指导如何克服此问题,我没有足够的声誉对此发表评论以询问答案的作者。
【问题讨论】:
-
对链接问题的回答有什么问题?你的代码是什么?你有什么确切和完整的错误?
-
我得到的错误是:
java.lang.IllegalArgumentException: Not enough variable values available to expand '"size"'。 json 看起来像这样:{"size":10000,"query":{"filtered":{"filter":{"term":{"run_id":"a5fc0cdb-0bce-4071-a850-77d181c0811d"}}}}} -
链接的问题只显示了如何从对象中获取 JSON,而不是如何在
exchange()中使用它以避免我上面提到的错误。 -
如果您需要有关代码的帮助,请发布您的代码。是的,它确实展示了如何使用参数值构建 URL。
-
@JBNizet:我明白了。我通过发送 URI 而不是字符串来实现它。谢谢!
标签: java json spring resttemplate