简体   繁体   English

在Java REST Web服务中访问multipart / form-data post请求的各个部分

[英]Accessing parts of a multipart/form-data post request in a Java REST web service

I have a multipart form which is supposed to upload a file as well as some parameters. 我有一个多部分表单,它应该上传一个文件以及一些参数。 It looks like this: 它看起来像这样:

<form id="upload" action="http://localhost:9998/test" method="post" enctype="multipart/form-data">
    <input name="inputfile" type="file" size="50" accept="application/octet-stream">
    <input name="someparameter" type="text" size="10">
    <input type="submit" value="Go!">
</form>

The web service looks like this: Web服务看起来像这样:

@Path("/test")
public class ServiceInterface {
    @POST
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public void execute(@FormParam(value="someparameter") String param) {
        System.out.println(param);
    }
}

When submitting the form, the value for "someparameter" is always reported as null although in the form I entered a value. 提交表单时,“someparameter”的值始终报告为null,尽管在我输入的值的形式中。

My questions are: 我的问题是:

  1. What is wrong with the above code? 上面的代码有什么问题?
  2. How would I access the file which is transmitted with the form? 我如何访问与表单一起传输的文件?

I am using Jersey 1.10. 我正在使用Jersey 1.10。

Ok, after googling quite a few hours I found the error in my code. 好吧,经过谷歌搜索几个小时后,我在代码中发现了错误。

You have to use the annotation @FormDataParam instead of @FormParam. 您必须使用注释@FormDataParam而不是@FormParam。

The resulting code looks like this: 生成的代码如下所示:

@Path("/test")
public class ServiceInterface {
    @POST
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public void execute(
                   @FormDataParam("someparameter") String param
                   @FormDataParam("inputfile") File inputfile
                       )
    {
        System.out.println(param);
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Spring POST multipart/form-data,请求部分始终为空 - Spring POST multipart/form-data, request parts always empty java 如何将 Multipart/Form-data 发送到 rest 服务 - java how to send Multipart/Form-data to rest service 多部分/表单数据发布-Java Spring - Multipart/Form-Data Post - Java Spring 包含json和bz2压缩文件部分的Java POST multipart / form-data - Java POST multipart/form-data containing json and bz2 compressed file parts 使用Java中的multipart / form-data获取来自HTTP POST请求的数据 - Get data form HTTP POST request with multipart/form-data in Java (Spring) 如何在Java中使用Apache HttpComponents发送多部分/表单数据发布请求 - how to sending multipart/form-data Post Request in with use of Apache HttpComponents in java 如何使用 Java 发出多部分/表单数据 POST 请求? - How can I make a multipart/form-data POST request using Java? Java-使用远程文件(带有http://或file://协议)的multipart / form-data POST请求 - Java - multipart/form-data POST request using a remote file (with http:// or file:// protocols) 使用 header Content-Type:multipart/form-data 发送 java POST 请求? - Send the java POST request with header Content-Type:multipart/form-data? 在Java中解析包含multipart / form-data请求体的String - Parse a String containing multipart/form-data request body in Java
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM