Retrofit+RxJava上传文件和头像
2018-02-02 00:20
253 查看
compile 'io.reactivex.rxjava2:rxjava:2.0.1' compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile 'com.squareup.retrofit2:retrofit:2.3.0' compile 'com.squareup.retrofit2:converter-gson:2.3.0' compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
//自定义接口 存放uri串
public interface Getnet { public static String net= "https://www.zhaoapi.cn/";//retrofit使用的baseurl
//接口为 网络请求的方式 必须post
public interface TestService { //第一种方式上传头像 @POST("file/upload") @Multipart Observable<FileResultBean> upload(@Part("uid") RequestBody uid, @Part MultipartBody.Part file); //第二种方式上传头像 @POST("file/upload") @Multipart Observable<FileResultBean> upload2(@Query("uid") String uid, @Part MultipartBody.Part file); }
//工具包 解析json串的时候用
public class Util { private volatile static Util util=null; private Util(){ } public static Util getmInstance(){ if (util==null){ synchronized (Util.class){ if (util==null){ util=new Util(); } } } return util; }public Testservice getnetjson(String uri){ Retrofit retrofit = new Retrofit.Builder().baseUrl(uri)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create
.build();
Testservive testservive = retrofit.create(Testservive.class);return testservive;//上传头像的代码
File f=new File(Environment.getExternalStorageDirectory(),"a.jpg");
Tes4000tservive testservive = Util.getnetjson(Getnet.net);
//如果用第二种方式上传头像 可以不用写RequestBody uidBody = RequestBody.create(MediaType.parse("multipart/form-data"),"10134");//f为file路径MultipartBody.Part filePart = MultipartBody.Part.createFormData("file",f.getName(),RequestBody.create(
MediaType.parse("application/octet-stream"),f));//第一种方式上传头像Observable<FileResultBean> upload = testService.upload(uidBody, filePart);//第二种方式 上传头像// Observable<FileResultBean> upload = apiService.upload2("10134", filePart);upload.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<FileResultBean>() {@Overridepublic void accept(FileResultBean fileResultBean) throws Exception {}});
相关文章推荐
- retrofit+rxjava 上传文件
- Android Retrofit2.0-post&get请求&文件上传&结合Rxjava
- Android_retrofit上传文件(包含头像)
- RxJava+Retrofit+MVP 带有进度条的文件上传
- RxJava+Retrofit+OkHttp深入浅出-终极封装三(文件上传)
- RxJava + Retrofit+okhttp 封装,包含对相同格式请求数据、相同格式返回数据处理,显示 Material Design 加载 dialog,文件上传下载进度展示、全局异常捕捉。
- RxJava+Retrofit+OkHttp深入浅出-终极封装三(文件上传)
- Retrofit+RxJava实现app崩溃处理(一)上传文件
- Android retrofit上传文件实例(包含头像)
- retrofit+rxjava 多个文件和参数上传的两种基本方式
- Retrofit+Rxjava实现文件上传和下载功能
- RxJava+Retrofit+OkHttp实现文件上传
- (三)最流行的网络请求框架Rxjava2+Retrofit之文件上传
- Retrofit2+RxJava学习小计(一):单文件、多文件上传之填平的坑
- Retrofit+RxJava之(上传文件)
- rxjava2 + retrofit上传文件示例
- Retrofit上传文件头像
- Retrofit上传文件头像
- Retrofit2 & RxJava2实现单文件和多文件上传
- Rxjava+ReTrofit+okHttp深入浅出-终极封装三(文件上传)