美文网首页
Retrofit 上传

Retrofit 上传

作者: zcwfeng | 来源:发表于2021-06-28 22:59 被阅读0次

最近在做上传业务,然后总结了一下,大多数情况上传的问题。

平时上传功能并不多,最近做UGC相关,接触用户上传图片和视频业务,还有混合上传业务。可以说难倒是并不难,就是协议和后台联调,尤其是后台的技术参差不齐的时候。

可能还有一些特殊的技巧,大家可以查找一下,因为我发现这块资料少,所以写了这篇付费文章,不像浪费时间的付费阅读。

我们通常Retrofit有4中标准的方式上传

看api定义

 /**
     * Multipart:表示请求实体是一个支持文件上传的Form表单,需要配合使用@Part,适用于 有文件 上传的场景
     * Part:用于表单字段,Part和PartMap与Multipart注解结合使用,适合文件上传的情况
     * PartMap:用于表单字段,默认接受的类型是Map<String,REquestBody>,可用于实现多文件上传
     * Part 后面支持三种类型,{@link RequestBody}、{@link okhttp3.MultipartBody.Part} 、任意类型;
     *
     * @param file 服务器指定的上传图片的key值
     * @return
     */
    @Multipart
    @POST("project/upload")
    fun upload(@Part("file\";filename=\"test.png") file: RequestBody): Call<ResponseBody>

    @Multipart
    @POST("project/upload")
    fun upload2(@Part file: MultipartBody.Part): Call<ResponseBody>

    // TODO 上传多张图片

    @Multipart
    @POST("project/upload")
    fun upload3(@PartMap map:Map<String,RequestBody>):Call<ResponseBody>

    @Multipart
    @POST("project/upload")
    fun upload4(@PartMap map:Map<String,MultipartBody.Part>):Call<ResponseBody>

不拿完整的实例,因为这个里不同的项目封装不同。核心用法一样。看下对应的实现代码

相关文章

网友评论

      本文标题:Retrofit 上传

      本文链接:https://www.haomeiwen.com/subject/svvcultx.html