0

在其他世界中使用@PUT 的最佳实践是什么。我有一个简单的方法

@PUT
@Path("/")
public boolean putShotComponentNote(String note) {
    System.out.println(note);
    return true;
}

当我尝试使用 Chrome 的插件(如 Simple REST Client 或 REST Console)访问此方法时,我在其中指定 url 并在数据段中放置键值对

note=This is some note

在我的方法中,我得到了键和值。理想情况下,我只想根据变量名称获取值,就像我在http://docs.redhat.com/docs/en-US/JBoss_Enterprise_Web_Platform/5/html-single/RESTEasy_Reference_Guide的一些示例中看到的那样/index.html

@PUT
@Path("array")
@Consumes("application/xml")
public void putCustomers(Customer[] customers)
{
  Assert.assertEquals("bill", customers[0].getName());
  Assert.assertEquals("monica", customers[1].getName());
}

那么有人可以指出我正确的方向吗?

谢谢大家

这可能是困难的吗?

这是发送的请求

 Request Url:       
 http://localhost:8080/rest/
 Request Method: PUT
 Status Code: 415
 Params: {
     "note": "asd"
 }

那么如何访问 notes 参数呢?@PathParam 不会工作,@QueryParam 也不会工作,只是普通的 String 不会(如上所述)让我 note=asd,我想避免这种情况。

这可能吗

4

1 回答 1

0

这取决于您的参数是如何发送的。由于@QueryParam 未检测到您的数据,因此您的数据可能位于表单内。

试试@FormParam: http ://docs.jboss.org/resteasy/docs/1.1.GA/userguide/html_single/index.html#_FormParam

我最近在通过 JQuery 的 ajax 函数发送 PUT 请求时遇到了这个问题。以下是调用 REST 服务的方法:

$.ajax({
    type:"PUT",
    url:"/rest/",
    data:{  "var1": "val1",
            "var2" : "val2"}
});

如果您只是想获取参数的字符串值,RESTEasy 可以通过 java.util.list 对象轻松获取它们。我以 URL 编码为例,但这也可以应用于其他人:

@PUT
@Consumes("application/x-www-form-urlencoded")
public void Method1(@FormParam("var1") List<String> list1,
                    @FormParam("var2") List<String> list2){
    String v1 = list1.get(0);
    String v2 = list1.get(0);

    System.out.println(v1);
    System.out.println(v2);
}

输出:

val1
val2
于 2012-08-22T21:09:45.710 回答