我正在使用Apache wink来获取我的RESful服务。我有两种方法,如下,
@POST
@Produces("multipart/mixed")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public BufferedOutMultiPart dummyMethod(@Context HttpServletRequest profileRegisterRequest){
}
@POST
@Produces("multipart/mixed")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public BufferedOutMultiPart dummyMethod(InMultiPart inMultiPart){
}
和这样的HTML表单
<form action="someurl" method="post" enctype="multipart/form-data">
// some elements
</form>
当我提交表单时,执行带有使用multipart的方法。这是按预期工作的。
但是,当我将表单的enctype更改为“application / x-www-form-urlencoded”时,如下所示,
<form action="someurl" method="post" enctype="application/x-www-form-urlencoded">
// some elements
</form>
执行消耗multipart的方法。我不期待这种行为。我需要第一个方法来执行。
我要从表单中删除多部分内容,为了向后兼容,我不会删除为多部分提供服务的方法。
注意:我需要两种方法都可以工作,因为我可能会在表单中获得多部分内容。使用enctype =“multipart / form-data”保留表单即使我在表单中没有多部分内容也能正常工作。但我认为它不是REST服务标准。