我正在使用Spring REST模板通过POST
提取数据,并且一切正常。
ResponseEntity<MyObject> resp= restTemplate.postForEntity("url", inputParam, MyObject.class);
但是现在由于我没有执行任何POST
操作,因此我想将其更改为GET
。我可以通过将所有输入参数添加为url参数来做到这一点,并做到:
ResponseEntity<MyObject> resp= restTemplate.getForEntity("url",MyObject.class);
但是问题是inputParam
有很多参数,因此手动准备url并不是最佳解决方案。另外GET
个请求也有长度限制。
还有其他更好的解决方案吗?
答案 0 :(得分:1)
首先,我认为您的第二行应该说getForEntity()
。
第二,如果您四处搜索,则有很多URL构建器类选项(包括Spring的选项)。因此,我将使用URL构建类来准备URL,而不是自己动手做,这会造成混乱。
长度限制
这里有一个很好的SO条目,指出了普通浏览器的长度限制;因此,如果它通过浏览器,那么如果您可能超过他们建议的2000下限,我会坚持使用POST。
从技术上讲,https://www.w3.org/2001/tag/doc/get7#myths不应有限制。
我认为在许多后端技术上没有限制。因此,如果这仅是API且不通过浏览器(例如后端到后端),则您可以忽略这些限制。我建议您仔细研究一下,然后在后端进行测试。
UniRest
此外,作为个人建议,我发现UniRest是一个非常有用的REST客户端,它使我的大部分代码更加简洁:)。如果有时间,可以尝试一下。