【发布时间】:2015-11-29 04:49:07
【问题描述】:
我想从我的 REST API 控制器调用 REST API 控制器。
"http://localhost:8080/function/1?filter={"id":1435263}"
由于spring mvc无法读取“{”,我们无法直接发送({“id”:1435263})JSON查询字符串和url,我以map的形式发送查询字符串(搜索变量)。
Object response = restTemplate.getForObject(crudControllerURL,
Object.class, map);
其中 map 包含值。
在服务器端,我无法检索此地图。我尝试了@RequestParam Object obj,但它不起作用。我不知道如何在那里获得这些值?
我需要把它转换成 POST 吗?
编辑
当我尝试将整个 url 与查询字符串一起使用时,我会收到
java.lang.IllegalArgumentException: Not enough variable values available to expand '"id"'
添加服务器端控制器代码 sn-p(不是全部),请注意我需要访问服务器 REST API 控制器中的地图。 服务器端控制器
@RequestMapping(value = "/{function}/{type}", method = RequestMethod.GET)
public List<Order> performFetchAll(@PathVariable String function,
HttpServletRequest request) throws JsonParseException,
JsonMappingException, IOException, InvalidAttributesException {
String requestQueryString = request.getQueryString();
if (requestQueryString == null
|| requestQueryString.equalsIgnoreCase(""))
return orderService.findAll();
请提供您的反馈。谢谢。
【问题讨论】:
-
您认为这对解决您的问题有何帮助?您发布客户端代码但省略了服务器端代码,这就是问题所在。还有为什么要把儿子作为论据而不是正文?
-
什么异常来了?您是否配置了消息转换器??
-
我马上就这样做了。
-
@bilbo baggins 不,我没有配置任何转换器
-
@M.Deinum ...这是搜索功能。用户应该能够使用查询字符串进行搜索,而我的设计要求它仅通过 url。
标签: java spring spring-mvc spring-boot