我的资源类:
@POST
@Path("/add")
@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Object add(Flow flow){
Object obj = fun(flow.getParam1(),flow.getParam2());
return obj;
}
Flow是JAXB
类,所有params
都是其成员变量
使用的命令:
curl -X POST -HContent-type:application/xml -k --data "<rootElementName param1=\"val1\" param2=\"val2\"/>" https://<ip>:8443/xxxx/add
curl -X POST -HContent-type:application/json -k --data "{\"@param1\":\"val1\",\"@param2\":\"val2\"}" https://<ip>:8443/xxxx/add
我的要求是识别无效的参数名称和错误。
例如:
curl -X POST -HContent-type:application/xml -k --data "<rootElementName invalidParam1=\"val1\" param2=\"val2\"/>" https://<ip>:8443/xxxx/add
资源类必须验证此数据并返回消息无效param
:invalidParam1
对于HTTP GET方法,我通过迭代多值映射uriInfo.getQueryParameters()
请建议更好的方法对param
方法执行此无效POST
验证(如果可能,请重复使用多值地图验证代码)