我必须更新具有名字和姓氏的人员记录。用户应该能够从 html 表单更改它,并在提交时更新它。
这是我的代码。
@PUT
@Path("/{userId}")
public Response updatingResource(@FormParam("firstName") String firstName, @FormParam("lastName ") String lastName , @PathParam("userId") String userId){
System.out.println(firstName);
System.out.println(lastName);
return Response.ok().build();
}
SOP 语句打印 null。我一直在使用 Mozilla Firefox 的 Poster 插件来发送 PUT 请求。
我也尝试用注释它@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
但它仍然为每个值打印 null 。
如何编写和调用接收这三个值的 PUT 方法。我偶然发现很多人要求使用 JSON 或 XML。我如何使用 JSON?如果有人帮助我编写 REST 方法来更新资源,我将非常感激
如果我使用 Firefox 发送 PUT 请求REST客户端 https://addons.mozilla.org/en-US/firefox/addon/restclient/和谷歌的休息客户端 http://code.google.com/p/rest-client/我能够获取表单参数。这个工具都有类似于我放置的主体部分的东西firstName=Amit&lastName=Patel
。我还添加了标题Content-Type
as application/x-www-form-urlencoded
.我认为 Firefox 的Poster https://addons.mozilla.org/en-US/firefox/addon/poster/是越野车。谁能建议我是否有其他方法可以验证代码或者我可以信任前两个 REST 客户端?
除了注释你的方法之外@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
,您必须发送application/x-www-form-urlencoded
作为内容类型。你做了吗?
编辑:您只能将 FormParams 与 POST 一起使用:
SRV.4.1.1 当参数可用时 以下是
在将表单数据填充到之前必须满足的条件
参数设置:
- 该请求是HTTP或HTTPS请求。
- HTTP 方法是 POST。
- 内容类型是 application/x-www-form-urlencoded。
- Servlet 已对请求对象上的任何 getParameter 系列方法进行了初始调用。如果不满足条件
并且post表单数据不包含在参数集中,post
数据必须仍然可以通过请求对象的 servlet 使用
输入流。如果满足条件,则不再发布表单数据
可直接从请求对象的输入中读取
溪流。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)