美文网首页
retrofit2.0文件数组形式的上传

retrofit2.0文件数组形式的上传

作者: 空老表 | 来源:发表于2017-12-06 16:13 被阅读0次

    前言:最近遇到一个项目是多图文件用相同字段上传,因为网络通信这一块的知识储备比较贫乏,所以开一贴记录一下,顺便帮助一些小鲜肉共同进步

    话不多说,上菜。。。。

    image.png

    这是通过postman模拟的请求参数,通过上图我们可以看出,上传文件真正需要的是下面这个:

    请求头信息:Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
    文件的唯一标志:Content-Disposition: form-data; name="uploadfiles"; filename="ludashi_baidu.exe"

    那么问题来了,我们该怎么组装呢?

    首先,我们可以看到请求头中的 Content-Typemultipart/form-data,所以我们在上传的时候
    是需要Multipart这个注解的

    image.png
    看图就可以知道这个注解是需要和part一起使用的,而我们的参数是不定的,所以使用partMap(胡吹一通,我都信了。。。)
    因此接口如下: image.png
    下面是使用方法:
    image.png
    这个是重点,手动拼接文件上传参数!!

    hashMap.put("uploadfiles";filename="" + file.getName(), requestBodyFile);

    注意:
    uploadfiles是服务端要求的key值,服务端的参数应该是:multipartFile[] uploadfiles
    上述就是我们手动的拼接出来一个file文件上传的参数,因为filename的不同,可以被上传到同一个请求file数组中,接下来是一张抓包的图片,上面可以清晰的看到请求的参数和参数类型

    image.png

    其实,这个可以说是一个万能的文件上传例子,适用于各种情况,当然你也可以把他抛开了,让他更适用于自己的项目。。。

    我发现了另一种方法,但是这种方法,在我另一个项目中上传不上去,大家谨慎使用:

    image.png image.png

    最后,如果有错误的地方,欢迎大佬指正 = =

    相关文章

      网友评论

          本文标题:retrofit2.0文件数组形式的上传

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