我有一个关于Web服务的问题。
GET请求可以成功执行,但是POST请求会获得HTTP状态415。
我正在开发一个JAX-RS RESTful API项目,需要与Android移动应用程序进行通信。 我能够从GET语句中接收信息。
这是我的LoginFormat对象的代码:
我正在开发一个JAX-RS RESTful API项目,需要与Android移动应用程序进行通信。 我能够从GET语句中接收信息。
这是我的LoginFormat对象的代码:
@XmlRootElement
public class LoginFormat {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
这里是我 CoCreationService
类的 POST
示例:
@Path("/User")
public class CoCreationService {
@POST
@Path("/testLogin")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Response parseTerm(LoginFormat login) {
return Response.status(200).entity(login.getUsername() + login.getPassword()).build();
}
}
我尽力了,但还是感到困惑。
我正在使用curl测试Web服务:
curl -i -X POST -H 'Content-Type: application/json' -d '{"username": "testuser", "password": "test"}' http://localhost:8080/CoCreationService/api/User/testLogin
是否需要设置或者我犯了一个关键性错误?
PS:我在使用NetBeans。
编辑:使用text/plain的POST方法可以解决问题!
@POST
@Path("/testPost")
@Consumes("text/plain")
public Response postClichedMessage(String message) {
return Response.status(200).entity(message).build();
}
<dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>${jersey.version}</version> </dependency>
- ROMANIA_engineer