java - Java REST 服务返回 400
问题描述
基本上我想用以下主体做一个 POST 请求:
public class Input extends BaseInput {
private static final long serialVersionUID = 1L;
private String example;
// Getter & Setter
}
public class BaseInput implements Serializable {
private SomeBaseElement sbe;
// Getter & Setter
}
public class SomeBaseElement implements Serializable {
private static final long serialVersionUID = 1L;
private String baseString;
// Getter & Setter
}
基本上我知道这SomeBaseElement
是问题所在,因为如果我从BaseInput
请求中删除它是成功的。但是有了它,我得到了一个400 BAD REQUEST
错误。
为什么会这样?
解决方案
由于您没有提供您的代码,这就是问题所在。可能您正在接受 REST 服务BaseInput
对象,但您正在发布一个Input
对象,即400-Bad Request
. 您可以使用以下方法来接受Input
对象。
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("/test")
public Response test(Input input) {
return Response.ok().build();
}
如果您想BaseInput
在 REST 端接受,则可以使用工厂模式。我建议您查看以下内容:
继承和 REST API 控制器 - 处理子类
推荐阅读
- excel - 文本/字符串上的 DAX LOOKUPVALUE
- c# - DataContext 重新绑定后在 WPF 控件中突出显示 DataGrid 的正确行
- c# - 如何从 swagger 定义生成 .net CORE SDK?
- angular - 角度材料表 - 将宽度分配给动态表中的特定列
- javascript - 使用 CSS Grid 调整图表大小问题
- r - 如何使用 r 编程在给定字符串中查找单词索引或位置
- android - 关于在 Room 中为与另一个实体具有一对多关系的实体插入记录的问题
- c# - WPF:DataGrid 上的水平 ScrollViewer 在绑定 ObservableCollection 的重新实例化时捕捉到右侧
- php - 如何使用带有 HTML 值作为简码属性的 HTML 创建简码?
- android - 为什么会抛出空对象引用上的 androidx.collection.SparseArrayCompat.size()