REST使用Java传递参数

11
我建立了一个REST webservice并定义了一些web方法。但是我无法将参数传递给这些方法。 例如:
@GET
@Path("hello")
@Produces(MediaType.TEXT_PLAIN)
public String hello(String firstName, String lastName){

    return "Hello " + firstname + " " + lastname
}

我该如何调用这个方法,并传递名字和姓氏这两个参数? 我尝试了类似于以下的代码:

ClientConfig config = new DefaultClientConfig();

Client client = Client.create(config);

WebResource service = client.resource(getBaseURI());

ClientResponse response = service.path("hello")
.accept(MediaType.TEXT_PLAIN).put(ClientResponse.class);

但我应该在哪里添加这些参数呢?

谢谢您的帮助, 最好的问候, Chris

3个回答

10

如果您正在使用SpringMVC进行REST API开发,您可以使用

@RequestParam("PARAMETER_NAME");

对于Jersey,您可以使用

@QueryParam("PARAMETER_NAME");

这个方法看起来像这样

public String hello(@RequestParam("firstName")String firstName, @RequestParam("lastName")String lastName){

return "Hello " + firstname + " " + lastname

}

:这是一个HTML代码段,表示一个闭合的大括号“}”。

7

这个教程应该会有所帮助。如果要包含参数,您需要使用@PathParam命令,如前一个SO帖子中所示。


谢谢你帮了我很多。但是如果我的方法需要一个字符串数组呢? - Chris
@Chris:这个链接应该会有所帮助:https://dev59.com/km035IYBdhLWcg3wVud1 - npinti
非常感谢。那个链接对于你上一个链接的背景也很有帮助:https://dev59.com/a2025IYBdhLWcg3w7qfL - Chris
这里我已经解释了更多的方法 https://stackoverflow.com/a/70656772/7390856 - Anuj Dhiman

2

这将会对你有所帮助

ClientResponse response = resource.queryParams(formData).post(ClientResponse.class, formData);

formData是指

MultivaluedMap formData = new MultivaluedMapImpl();


formData.add("Key","Value");
formData.add("Key","Value");
...
...
...
formData.add("Key","Value");

这对我来说看起来很有前途,但是在Android中似乎没有ClientResponse可用... - B. Clay Shannon-B. Crow Raven

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接