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

Method Not Allowed REST Java when trying to do POST

我只想创建一个简单的 REST 服务,它使用 @GET@POST。 对于 @GET 函数,一切正常,但对于 @POST,当我想在我的服务器上创建一个新用户时,浏览器一直处于饱和状态(METHOD NOT ALLOWED)。 我阅读了很多关于如何修复此错误的文章,但我还没有得到任何东西。

我的 @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();





}}

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

另外,我输入的URL是:

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

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

有人可以帮忙吗?

直接通过浏览器访问URL只能创建Get Request,不能创建POST Request

你应该

  1. 创建 HTML 表单,使用 POST 方法将操作设置为您的服务 url,然后提交。
  2. 像邮递员一样使用 Rest Client 通过 POST 方法访问您的服务。
  3. 使用 java.net.http api 编写您自己的 Http 客户端,或者只是简单地使用 方便的 libraries/frameworks 之一(就像 Spring 有 RestTemplate)。
  1. 如果您在浏览器 URL 地址字段中输入 URL,它将不起作用,因为浏览器将发送 "GET" 请求。因此,您必须使用允许您像 PostMan 一样发送 "POST" 的客户端。或者编写您自己的小型 httpConnection 函数来发送 "POST"

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