【问题标题】:Jax-Rs parameters to retrieve Multipart检索 Multipart 的 Jax-Rs 参数
【发布时间】:2015-12-03 08:09:50
【问题描述】:

处理图像(文件)Post请求的Multipart Retrofit String和RequestBody需要哪些参数以及哪些注解?

Jax-Rs:

@POST
@Path("/user/image")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response addUserImage(?, ?) {}

改造 2.0:

@Multipart
@POST("user/image")
Call<User> addUserImage(@Part("user") String userId, @Part("image") RequestBody image);

【问题讨论】:

    标签: image jersey jax-rs retrofit


    【解决方案1】:

    对于文件,您可以使用FileInputStreambyte[]。对于纯文本,只需使用字符串。您还需要使用@FormDataParam("&lt;value&gt;") 注释参数,其值是部件的名称。

    @POST
    @Path("/user/image")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public Response addUserImage(@FormDataParam("image") InputStream image,
                                 @FormDataParam("image") FormDataContentDisposition imageDetail,
                                 @FormDataParam("user") String user) {   
    }
    

    您需要确保您具有多部分支持依赖项。不确定您使用的是哪个 Jersey 版本,但两者都适用

    球衣 2.x

    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-multipart</artifactId>
        <version>${jersey2.version}</version>
    </dependency>
    

    球衣 1.x

    <dependency>
        <groupId>com.sun.jersey.contribs</groupId>
        <artifactId>jersey-multipart</artifactId>
        <version>${jersey1.version}</version>
    </dependency>
    

    使用 Jersey 1.x,无需任何进一步的配置,它就可以运行。对于 2.x,您需要注册 MultiPartFeature。如需帮助,请参阅this post

    【讨论】:

      猜你喜欢
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 2018-05-30
      • 1970-01-01
      • 2017-04-23
      • 2019-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多