java - 尝试执行 POST 时不允许使用 REST Java 方法

标签 java rest http-status-code-405

我只想创建一个简单的 REST 服务,它使用 @GET@POST。 对于@GET函数,一切正常,但对于@POST,当我想在我的服务器上创建一个新用户时,浏览器只是保持饱和(不允许使用方法)。 我读了很多关于如何修复此错误的文章,但我还没有得到任何信息。

我的@POST代码:

@Path("/hello")
public class HelloResource(){
@POST
@Produces(MediaType.APPLICATION_JSON)
@Path("/post")
public Response createUser(@PathParam("name") String name,@PathParam("address") String address,@PathParam("birthYear") String birth,@PathParam("ps") String password) throws NotAllowedException,MethodNotFoundException,Exception {


    DataStore.getInstance().putPerson(new Person(name, address, Integer.parseInt(birth), password));
    String json = "{\n";
    json += "\"status\": " + '"'+"CREATED" +'"'+ ",\n";
    json+="}";
    return Response.status(200).entity(json).build();





}}

我还尝试使用 (MediaType.APPLICATION.JSON) 和 (MediaType.TEXT_PLAIN) 添加 @Consumes 函数,但没有任何改变。

此外,我输入的用于发布的 URL 是:

http://localhost:8080/HelloREST/rest/hello/post?name=PouYad&address=mustbejsonlater&birthYear=2005&ps=12345

正如你所见,我也尝试了很多异常处理程序。

有人可以帮忙吗?

最佳答案

  1. 如果您在浏览器 URL 地址字段中输入您的 URL,它将不起作用,因为浏览器将发送“GET”请求。因此,您必须使用允许您发送“POST”的客户端,例如 PostMan。或者编写您自己的小型 httpConnection 函数来发送“POST”

  2. 您还必须将@PathParam更改为@FormParam才能使其工作(@QueryParam也可以工作,但因为它是POST,所以最好使用@FormParm)。

关于java - 尝试执行 POST 时不允许使用 REST Java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61260811/

相关文章:

java - 自定义 AWT 标题窗口

java - 使用 Spark 流从数据库流式读取

java - 更改 JXDATEPICKER 的显示

java.io.EOFException : End of input at line 1 column 1 path $ in Android retrofit 异常

java - 防止 REST 客户端同时执行具有相同参数的相同方法

django - 使用@require_POST 时如何在 Django 中显示 HTTP 状态 405(不允许的方法)的自定义错误页面

java - 在 Hibernate 中设置连接

windows - cpprestsdk SSL post 不适用于 Windows7 但适用于 Windows 10

java - 如何使用@ExceptionHandler 捕获HTTP 405 "Method Not Allowed"异常?

javascript - XMLHttpRequest() POST 返回 405 错误;不允许的方法