java - 为什么我的 REST 服务器中的响应状态为 204 No content?
问题描述
我是 REST API 的新手,通常使用服务器,我正在尝试制作一个简单的客户端-服务器应用程序。我正在使用泽西岛。
客户端向服务器发送一些数据,服务器接收数据并将其显示在所需的 uri 上,反之亦然。
接收托管在服务器上的数据的反之部分工作正常,但我无法将数据发送到服务器。
我试过这样的POST:
@POST
@Path("/something")
@Consumes("application/x-www-form-urlencoded")
public void getSomething(){
}
我的客户端代码如下所示:
Client client = Client.create();
MultivaluedMap formData = new MultivaluedMapImpl();
formData.add("name1", "val1");
formData.add("name2", "val2");
WebResource resource = client.resource("http://localhost:8080/artifact/rest/something");
ClientResponse response = resource.type("application/x-www-form-urlencoded").post(ClientResponse.class, formData);
System.out.println(response);
我正在尝试将字符串或 json 类型的对象发送到服务器,它应该在该 url 上显示它。但我不能这样做。
如果有人可以帮助我,我将不胜感激。
编辑 如果有人能告诉我如何使用这样的代码将数据发送到服务器,我也将不胜感激。
解决方案
你getSomething
没有返回任何东西。这转化为204 No Content
响应:操作成功(2xx
代码的 表明这一点)但没有任何返回。
如果要返回某些内容,请将返回类型从 更改void
为Response
。
@POST
@Path("/something")
@Consumes("application/x-www-form-urlencoded")
@Produces("text/plain")
public Response getSomething() {
return Response.ok("Success!").build();
}
这将返回 HTTP 状态代码作为响应正文的内容200 OK
。Success!
但是您可能想以某种方式使用请求的内容。查看jax-rs 检索表单参数,了解如何执行此操作。
推荐阅读
- javascript - 创建一个跟随光源的日/夜着色器
- javascript - 存储租赁类型、租赁期限、租赁范围以获得正确租赁率的正确 JavaScript 数据结构是什么?
- oracle - 如何在 Oracle PLSQL 中选择变量作为查询结果
- bash - Git Alias - 带有分支名称的 git commit
- angular - 为 Angular 辅助路由设置默认路径
- javascript - 链接被阻止点击径向菜单
- javascript - 如何使用 axios 编辑和更新页面的 html?
- java - 为什么我用 + 添加字符后,我的字符串变成整数而不是字母?
- mysql - 将 DATEFROMPARTS 与 RIGHT/CHARINDEX 函数一起使用
- javascript - 为什么当我在另一个里面创建一个类的实例时它变得未定义?