gpt4 book ai didi

android - HTTP 状态 405 - 方法不允许(jax-rs 服务)

转载 作者:太空宇宙 更新时间:2023-11-03 10:49:53 27 4
gpt4 key购买 nike

Jax-rs 服务返回 HTTP 状态 405 - 方法不允许

服务:

@GET
@Consumes(MediaType.TEXT_HTML)
@Produces(MediaType.APPLICATION_JSON)
@Path("login")
public User Login(@QueryParam("u") String username, @QueryParam("p") String password) {
return UserDAO.getInstance().getLogin(username,password)
}

安卓:

 public static Boolean Login(User user) {
String url = "http://myserver.com/AndroidServis/rest/login?u={u}&p={p}";
RestTemplate restTemplate = new RestTemplate();

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);

HashMap<String, String> params = new HashMap<String, String > ();
params.put("u", user.getUsername().toString());
params.put("p", user.getPassword().toString());

HttpEntity entity = new HttpEntity(headers);

restTemplate.getMessageConverters().add(new GsonHttpMessageConverter());
restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
HttpEntity < Korisnici > response = restTemplate.exchange(url, HttpMethod.GET, entity,User.class, params);

}

最佳答案

服务器在 @GET 方法上有一个 @Consumes 注释是没有意义的,因为这通常只用于 PUTPOST 请求客户端向服务器发送一些内容。你能删除这个吗?

然后也从客户端代码中删除它。

headers.setContentType(MediaType.APPLICATION_JSON);

并且您可能需要取消注释您已注释掉的行:

headers.set("Accept", "application/json");

这告诉服务器响应中期望的内容类型必须与服务的@Produces 匹配。

关于android - HTTP 状态 405 - 方法不允许(jax-rs 服务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15276719/

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