gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 03:09:15 25 4
gpt4 key购买 nike

如果我向服务器发送带有参数的 GET 请求,我会收到 405 - 方法不允许

 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。

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

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

最佳答案

通过在用户 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) {
}

关于java - 如果我向服务器发送带有参数的 get 请求,我会收到 405 Method not allowed by Postman,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57004352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com