需求
Retrofit普及后,最近好多人都在问,如何实现Retrofit上传多文件+文字需求(朋友圈发图片+文字)
解决方案
google: retrofit upload multiple files
说重点
与其直接说答案,不如我们花点时间说说多文件上传的原理,这样,以后就算出了其他的http框架,你也能快速实现。
HTTP协议就不讲了吧?反正copy一段过来也不会有人看。我们就直接跳到文件上传去。想看也可以,传送门
post form 表单
upload01.png
上图是不是很常见,在网页里选一个文件,点击上传。上传到哪里?服务器咯。web和移动端本质上有区别嘛?木有啊,就是一个前端展示的client。那服务器会为移动端创造一套独立的API嘛?显然他没那么傻。
这个文件上传经常会伴随着其他fields一起上传。可以简单理解为表单上传。
先来看下,如果没有文件,也不用json,单独上传一些key value怎么做?在Postman里可以这样模拟。
upload03.png
表单上传要注意的是
content-type设为application/x-www-form-urlencoded