如果我向服务器发送带有参数的 get 请求,我会收到 405 Method not allowed

如果我向我的服务器发送一个带有参数的 GET 请求,我会得到一个 405 - Method not allowed.


 package pkgService;


 import com.fasterxml.jackson.databind.ObjectMapper;

 import pkgData.pkgEmployee.User;

 import pkgServer.pkgUser.UserManagement;


 import javax.ws.rs.*;

 import javax.ws.rs.core.Response;


@Path("/user")

public class UserRouter {


     private UserManagement userManagement;

     private ObjectMapper objMap;


     public UserRouter() {

         this.userManagement = new UserManagement();

         objMap = new ObjectMapper();


         //TODO delete test data

         userManagement.addUser(new User(1,"lukad", "luki"));

         userManagement.addUser(new User(2,"meli", "malal"));

     }


     @GET

     @Path("{userId}")

     public Response getBook(@PathParam("userId") String id) {

         Response.ResponseBuilder response = Response.status(Response.Status.OK);

         try {

             response.entity(objMap.writeValueAsString(userManagement.getUser(id)));

         } catch (Exception e) {

             response.status(Response.Status.BAD_REQUEST);

             response.entity("[ERROR] " + e.getMessage());

         }

         return response.build();

     } }

我希望获得 ID 为 1 (lukad,luki) 的用户,但我收到了 405。


我的邮递员请求网址: http://localhost:8080/Server_war_exploded/user?userId=1


我忘记了代码中的某些内容吗?


小怪兽爱吃肉
浏览 149回答 3
3回答

噜噜哒

通过在用户 ID 前添加“/”来更改功能@GET@Path("/{userId}")     public Response getBook(@PathParam("userId") String id) {}此外,如果您使用的是 PathParam,那么您还需要将 url 更改为 http://localhost:8080/Server_war_exploded/user/1其中 1 是用户 ID但是如果你想使用 http://localhost:8080/Server_war_exploded/user?userId=1然后您需要使用 QueryParams 并按如下方式更改代码 @GET public Response getBook(@QueryParam("userId") String id) {    }

尚方宝剑之说

使用这个@Path("/{userId}")。这会起作用。网址会像这样:http://localhost:8080/Server_war_exploded/user/{userId}例子 :http://localhost:8080/Server_war_exploded/user/1

神不在的星期二

@Path("{userId}")它缺少正则表达式。它如何知道现在的用户 ID 是什么以及路径的下一步是什么?它应该是这样的(如果你的 id 真的是一个字符串......): @Path("{userId:\\w+}")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java