我试图通过邮递员调用此API:
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public void printDetails(final MultivaluedMap<String, String> formParams) {
for(String key : formParams.keySet()) {
System.out.println(key + " " + formParams.get(key));
}
}
但地图结果是空的。请帮我一样。
PS:这是我第一次尝试将可变数量的参数传递给api。我已经提过了 sending List/Map as POST parameter jersey和How to access parameters in a RESTful POST method。
我认为我的错误在于我在postman中传递参数的方式:postman image
请帮我一样。另外请帮助了解如何通过ajax(在JS中)调用此API。
答案 0 :(得分:2)
答案 1 :(得分:1)
我找到了一个可能的答案。
@POST
public void printDetails() {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
Map<String, String[]> mapp = request.getParameterMap();
for(String key : mapp.keySet()) {
System.out.println(key + " " + mapp.get(key)[0]);
}
}
仍然不确定如何通过在参数
中传递“final MultivaluedMap”来实现