Java 区分同一servlet请求中的URI和请求体参数
我希望我的API能够在一次调用中设置一系列对象的值。一个看似合乎逻辑的解决方案是让用户在URI的范围内定义,并在请求正文中设置所需的新值。例如,URI将是:Java 区分同一servlet请求中的URI和请求体参数,java,rest,servlets,Java,Rest,Servlets,我希望我的API能够在一次调用中设置一系列对象的值。一个看似合乎逻辑的解决方案是让用户在URI的范围内定义,并在请求正文中设置所需的新值。例如,URI将是: /api/horses/?color=brown 在请求主体中,键/值对是 key: color value: red 这将使我们所有的棕色马变成红色 问题是从HttpServletRequest对象获取参数不允许您确定参数是在URI中设置的还是在主体中设置的 也许这里有两个问题: 如果在一次调用中有不同的、普遍接受的RESTful方法
/api/horses/?color=brown
在请求主体中,键/值对是
key: color
value: red
这将使我们所有的棕色马变成红色
问题是从HttpServletRequest对象获取参数不允许您确定参数是在URI中设置的还是在主体中设置的
也许这里有两个问题:
PUT /api/horses/color?from=brown&to=red
因此,您的问题是,在请求行中编码的参数和POST正文中编码的参数之间存在名称冲突 您始终可以通过调用以下命令进行区分:
HttpServletRequest.getQueryString()
HttpServletRequest.getInputStream()