Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android HTTP状态405-不允许使用方法(jax rs服务)_Android_Rest_Jersey_Tomcat7 - Fatal编程技术网

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

Android HTTP状态405-不允许使用方法(jax rs服务),android,rest,jersey,tomcat7,Android,Rest,Jersey,Tomcat7,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 U

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);

 }
Android:

@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);

 }
公共静态布尔登录(用户){
字符串url=”http://myserver.com/AndroidServis/rest/login?u={u} &p={p}”;
RestTemplate RestTemplate=新RestTemplate();
HttpHeaders=新的HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HashMap params=newhashmap();
参数put(“u”,user.getUsername().toString());
参数put(“p”,user.getPassword().toString());
HttpEntity=新的HttpEntity(标题);
restemplate.getMessageConverters().add(新的GsonHttpMessageConverter());
restemplate.getMessageConverters().add(新的StringHttpMessageConverter());
HttpEntityresponse=restemplate.exchange(url、HttpMethod.GET、entity、User.class、params);
}

服务器在
@GET
方法上有
@Consumes
注释是没有意义的,因为这通常仅用于客户端向服务器发送某些内容的
PUT
POST
请求。 你能把这个拿走吗

然后从客户机代码中删除它

headers.setContentType(MediaType.APPLICATION_JSON);
您可能需要取消注释已注释掉的行:

headers.set("Accept", "application/json");
这会告诉服务器响应中预期的内容类型,因此必须与@生成的服务相匹配