REST multipart / form-data& application / x-www-form-urlencoded无法正常工作

时间:2013-11-05 07:44:32

标签: java forms rest apache-wink enctype

我正在使用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服务标准。

0 个答案:

没有答案