我在Java Spring Application中有以下REST控制器:
@RequestMapping(
value = "/api/getApplication/{me_userId}",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
public Object getApplication(
@PathVariable String userId,
@RequestParam(value="fieldNames[]", required = false) String[] fieldNames) {
if (fieldNames != null) {
for (String fieldName : fieldNames)
System.out.println(fieldName);
}
...
return null;
}
所以我无法成功模拟来自POSTMAN的DHC REST的API调用将传递那个fieldNames []。
有谁知道怎么做?
答案 0 :(得分:1)
首先,您当前的方法不起作用,因为您的@PathVariable
错误。在@RequestMapping
中,您的路径中包含以下占位符:{me_userId}
,这意味着它将映射到具有该名称的路径变量。
但是,您拥有的唯一@PathVariable
是无名的,这意味着它将使用参数名称(userId)代替。
因此,在您尝试执行请求之前,您必须将@RequestMapping
更改为:
@RequestMapping(
value = "/api/getApplication/{userId}", // <-- it's now {userId}
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
然后,如果您运行该应用程序,您可以选择如何传递参数。以下两项都有效:
?fieldNames[]=test,test2
或者:
?fieldNames[]=test&fieldNames[]=test2
这些结果都应打印出所需的结果。