文档章节

Retrofit2.0上传图片

_
 _OUTMAN_
发布于 2016/05/18 17:14
字数 207
阅读 462
收藏 8

正常使用Multipart方式上传图片

第一种上传单个图片,第二种上传多个图片

@Multipart
@POST(ACTION_URL)
Observable<ResponseBody> uploadFiles(@Part("image\"; filename=\"文件名.jpg") RequestBody file);

@Multipart @POST(ACTION_URL)
Observable<ResponseBody> uploadFiles(@Query("a") String type, @PartMap Map<String, RequestBody> requestBodys);

有时上传图片,需要上传几个参数

我最开始是使用@Part标签设置的,但服务器接收不到数据,可能是类型的原因

@Multipart @POST(ACTION_URL)
Observable<ResponseBody> uploadFiles(@Query("a") String type, @PartMap Map<String, RequestBody> requestBodys,@Part("userid") String userid);

改成下面的就可以了

@Multipart @POST(ACTION_URL)
Observable<ResponseBody> uploadFiles(@Query("a") String type, @PartMap Map<String, RequestBody> requestBodys,@Part("userid") RequestBody userid);

或者直接放到Map里

RequestBody useridBody = RequestBody.create(MediaType.parse("text/plain"), userid);
RequestBody fileBody = RequestBody.create(MediaType.parse("image/*"), imageFile);

Map<String, RequestBody> map = new HashMap<>();
map.put("userid", useridBody);
map.put("photo\"; filename=\"" + imageFile.getName(), fileBody);

注意,photo是服务器接收的名称,filename必须写

 

 

© 著作权归作者所有

共有 人打赏支持
_
粉丝 21
博文 133
码字总数 63959
作品 0
海淀
程序员
一个完整的壁纸应用——[仿爱壁纸],从设计到实现的过程

一个完整的壁纸应用——[仿爱壁纸],从设计到实现的过程 正如我的GitHub上的README上说的,偶然之间发现了一个接口,觉得挺有意思的,于是乎,就开始着手的写一个壁纸类应用了,其实之前就一...

刘桂林
2017/01/21
0
0
Retrofit2.0 使用教程

版权声明,转载请著名出处:http://www.jianshu.com/p/73a803b0b026 引言 俗话说:代码是程序员的最好的教程,这篇文章记录的是我在学习使用Retrofit的代码笔记,其中里面的很多注解或原理我...

在代码下成长
2017/09/06
0
0
node.js项目架构

1,node.js后台:express4.0框架控制路由,可同时设计api和前端页面模版。mongodb设计数据库,用mongoose ORM映射框架。async模块提供同步和异步操作。crypto加密模块给密码加密处理。 2,a...

761218914
2016/05/09
13
0
Aaron/MaterialUi

#MaterialUi ##题外: 构建一个基于material风格的android工具平台。 ##开发环境 androidstudio jdk8 ##主要依赖包介绍 1、网络请求框架:retrofit2.0 2、注解绑定控件:butterknife7.0.1 3、...

Aaron
2017/03/06
0
0
Android Http通讯模块封装

大多数的Android应用程序都会使用HTTP协议来发送和接收网络数据,而Android中主要提供了两种方式来进行HTTP操 作,HttpURLConnection和HttpClient。这两种方式都支持HTTPS协议、以流的形式进...

iSnowFlake
2015/08/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

[Hive]JsonSerde使用指南

注意: 重要的是每行必须是一个完整的JSON,一个JSON不能跨越多行,也就是说,serde不会对多行的Json有效。 因为这是由Hadoop处理文件的工作方式决定,文件必须是可拆分的,例如,Hadoop将在...

Mr_yul
32分钟前
1
0
54:mysql修改密码|连接mysql|mysql常用命令

1、mysql修改密码: root用户时mysql的超级管理员,默认mysql的密码是空的,直接可以连接上去的,不过这样不安全; 注释:为了方便的使用mysql,需要把mysql加入到环境变量里; #后续自己输入mys...

芬野de博客
39分钟前
1
0
鼠标单击复制粘贴标签中的内容

<span ref="spanContentOne" id="spanContentOne" style="font-size: 14px;">或许不是最亮眼,总比瞎买强一点</span><!--<input type="button" @click="copyClick('1')" value="复制" />-......

帝子兮
44分钟前
1
0
使用axel多线程疯狂下载

在Linux中比较常见见的下载工具是curl和wget,但是下载比较大的文件两者都不支持多线程, 断点续传的作用不见得能发挥到最大。今天介绍一个axel工具,开启多线程疯狂下载。 安装 Fedora/Cen...

linuxprobe16
46分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部