android retrofit上传图片,Android用Retrofit以form表单上传图片

Retrofit是一个用于安卓和java的http框架,具体用法可以查看它的官网和github。网上也有很多使用教程,这里主要简单说下用它以form表单上传图片的方法。

官网http://square.github.io/retrofit/

github https://github.com/square/retrofit

1.添加gradle引用

compile 'com.squareup.retrofit2:retrofit:2.1.0'

compile 'com.squareup.retrofit2:converter-gson:2.1.0' //用于解析json数据

compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0' //这里用于retrofit与rxjava结合使用

2.请求接口

public interface HttpApi{

@Multipart //这里用Multipart

@POST("url/myurl") //请求方法为POST,里面为你要上传的url

Call myUpload(@Part List partLis)

//注解用@Part,参数类型为List 方便上传其它需要的参数或多张图片

//Result为我自定义的一个类

}

3.初始化Retrofit

Retrofit retrofit = new Retrofit.Builder()

.baseUrl("https://api.github.com/")

.build();

HttpApi service = retrofit.create(HttpApi.class);

4.开始上传图片

//1.创建MultipartBody.Builder对象

MultipartBody.Builder builder = new MultipartBody.Builder()

.setType(MultipartBody.FORM)//表单类型

//2.获取图片,创建请求体

File file=new File(path);

RequestBody body=RequestBody.create(MediaType.parse("multipart/form-data"),file);//表单类型

//3.调用MultipartBody.Builder的addFormDataPart()方法添加表单数据

builder.addFormDataPart(key, value);//传入服务器需要的key,和相应value值

builder.addFormDataPart(key,file.getName(),body); //添加图片数据,body创建的请求体

//4.创建List 集合,

// 调用MultipartBody.Builder的build()方法会返回一个新创建的MultipartBody

// 再调用MultipartBody的parts()方法返回MultipartBody.Part集合

List parts=builder.build().parts();

//5.最后进行HTTP请求,传入parts即可

Call uploadPic=service.myUpload(parts);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值