应用程序/ x-www-form-urlencoded和POJO不支持的媒体类型

时间:2018-07-29 18:34:18

标签: rest jersey postman

我有一个使用Jersey框架构建的REST API。我想使用邮递员执行发帖请求。我可以发送xml或json格式的数据,但是当我尝试发送x-www-form-urlencoded数据时出现错误Unsupported Media Type。

我在邮递员的标头字段中将内容类型设置为application/x-www-form-urlencoded。另外在后方法代码中,我有 @Consumes(MediaType.APPLICATION_FORM_URLENCODED)

但是它仍然无法正常工作。一切都适用于XML和JSON格式。

有人可以帮助我解决此错误吗?

1 个答案:

答案 0 :(得分:0)

  

来自评论

     

ME:您是否要对所有三种(JSON / XML / Form)媒体类型使用相同的POJO?

     

OP:我对所有格式都使用相同的格式。

您不能那样做。您需要为application/x-www-form-urlencoded数据创建一个单独的方法。因为没有entity provider不能将表单参数反序列化为POJO,所以您会收到错误消息。它们仅适用于JSON和XML。

在新方法中,您可以接受类型FormMutlivaluedMap<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) {}