我有一个使用Jersey框架构建的REST API。我想使用邮递员执行发帖请求。我可以发送xml或json格式的数据,但是当我尝试发送x-www-form-urlencoded
数据时出现错误Unsupported Media Type。
我在邮递员的标头字段中将内容类型设置为application/x-www-form-urlencoded
。另外在后方法代码中,我有
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
。
但是它仍然无法正常工作。一切都适用于XML和JSON格式。
有人可以帮助我解决此错误吗?
答案 0 :(得分:0)
来自评论
ME:您是否要对所有三种(JSON / XML / Form)媒体类型使用相同的POJO?
OP:我对所有格式都使用相同的格式。
您不能那样做。您需要为application/x-www-form-urlencoded
数据创建一个单独的方法。因为没有entity provider不能将表单参数反序列化为POJO,所以您会收到错误消息。它们仅适用于JSON和XML。
在新方法中,您可以接受类型Form
或MutlivaluedMap<String, String>
。随便挑。
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response postForm(Form form) {}
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response postForm(MultivaluedMap<String, String> form) {}