1

我将 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 服务标准。

4

0 回答 0