如何使用Jersey在RESTFul Web服务中实现POST方法

时间:2016-02-19 06:41:10

标签: web-services

我最近一直致力于简单的RESTFul Web服务,在Eclipse上运行jersey。我可以让GET函数正常工作。但是当我尝试POST方法时,使用Post注释并部署它,我得到了#34;方法不允许"信息。我似乎无法弄清楚原因。有关如何让它工作的任何想法?

谢谢。

这是我的代码: -

package myapp;

import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;

@Path("login")
public class SimpleClass {
    @POST
    @Path("/sayhello")
    @Produces("text/plain")
public String sayHello(@QueryParam("username") String username)
{
    return "Hello  "+username;
}
}

通过以下链接访问:  http://localhost:8080/RestSample/login/sayhello?username=som

我不允许使用"方法"消息。

2 个答案:

答案 0 :(得分:1)

您正在从浏览器访问,因此浏览器的默认方法是 GET

尝试从 POSTMAN 调用和ReST客户端 您可以在哪里将方法更改为POST

答案 1 :(得分:0)

解释405错误

在浏览器地址栏中输入资源网址时,您正在执行GET请求。这是浏览器的默认行为。处理它。

对仅支持GET的端点执行POST请求时,预期结果为405错误:

  

6.5.5. 405 Method Not Allowed

     

405(Method Not Allowed)状态代码表示该方法   请求行中收到的信息由原始服务器知道但不是   目标资源支持。 [...]

选择正确的工具

一旦您只能执行GET请求,浏览器地址栏就无法为您提供测试REST API的灵活性。

要测试REST API,您应该使用正确的工具。它们将使您能够使用all the HTTP methods,设置request headers以及浏览器地址栏中未提供的其他功能来执行请求。

只列出一些: