android 使用Retrofit2 RxJava 文件上传
private static void upload(final Context context, final int type, File logFile) {
Map<String, RequestBody> map = new HashMap<>();
if (logFile != null && logFile.length() > 0) {
map.put(parseMapKey("file", logFile.getName()), parseRequestBody(logFile));
}
ApiFactory.getInstance().getApiService().uploadLog(map)
.compose(RxSchedulers.<List<String>>combine())
.subscribe(new RxSubscriber1<List<String>>() {
@Override
public void onError(ApiException e) {
LogUtil.w("upload onFailure: ");
}
@Override
public void onNext(List<String> filePaths) {
if (!CommonUtil.isEmpty(filePaths))//上传成功
{
LogUtil.w("upload succ,filePath:" + filePaths.get(0));
DebugHelp.PrintLine("upload succ,filePath:" + filePaths.get(0));
}
File dir;
if (type == UPLOAD_TYPE_FUNCTION) {
dir = LogCollectorUtility.getExternalDir(context, Constants.FUNCTION_DIR_NAME);
} else {
dir = LogCollectorUtility.getExternalDir(context, Constants.DIR_NAME);
}
FileToZip.recursionDeleteFile(dir);
}
});
}
public static RequestBody parseRequestBody(File file) {
return RequestBody.create(MediaType.parse("multipart/form-data"), file);
}
public static String parseMapKey(String key, String fileName) {
return key + "\"; filename=\"" + fileName;
}
/**
* 上传日志
*
* @return
*/
@Multipart
@POST("v1/app/exception")
Observable<ResponseBean<List<String>>> uploadLog(@PartMap Map<String, RequestBody> map);
android 使用Retrofit2 RxJava 文件上传的更多相关文章
- Android开发之httpclient文件上传实现
文件上传可能是一个比較耗时的操作,假设为上传操作带上进度提示则能够更好的提高用户体验,最后效果例如以下图: 项目源代码:http://download.csdn.net/detail/shinay/4 ...
- Android Retrofit 2.0文件上传
Android Retrofit 实现(图文上传)文字(参数)和多张图片一起上传 使用Retrofit进行文件上传,肯定离不开Part & PartMap. public interface ...
- Android采取async框架文件上传
页面效果 须要的权限 <uses-permission android:name="android.permission.INTERNET"/> 网络訪问权限; 布局文 ...
- Android使用HttpClient实现文件上传到PHP服务器,并监控进度条
上传 服务器端PHP 代码如下 : <?php $target_path = "./tmp/";//接收文件目录 $target_path = $target_path.($ ...
- android webview type=file文件上传,安卓端代码
http://stackoverflow.com/questions/5907369/file-upload-in-webview http://blog.csdn.net/longlingli/ar ...
- Android WebView选择本地文件上传
This sample demonstrate android webview choose file to upload. I just implement the client code ,the ...
- Retrofit2文件上传下载及其进度显示
序 前面一篇文章介绍了Retrofit2的基本使用,这篇文章接着介绍使用Retrofit2实现文件上传和文件下载,以及上传下载过程中如何实现进度的显示. 文件上传 定义接口 1 2 3 @Multip ...
- Rxjava+Retrofit2+Okhttp3多文件上传(服务器端代码+客户端代码)
所有代码亲测可用,如有问题,欢迎指正. 首先在ApiService接口文件中新建文件上传接口 public interface ApiService { static final String BAS ...
- Android OkHttp文件上传与下载的进度监听扩展
http://www.loongwind.com/archives/290.html 上一篇文章介绍了用Retrofit实现文件的上传与下载,但是我们发现没办法监听上传下载的进度,毕竟我们在做开发的时 ...
随机推荐
- 完美解决xhost +报错: unable to open display "" 装oracle的时候总是在弹出安装界面的时候出错
详细很多朋友在装oracle的时候总是在弹出安装界面的时候出错,界面就是蹦不出来. oracle安装 先切换到root用户,执行xhost + 然后再切换到oracle用户,执行export DISP ...
- mfs windows客户端
之前用moosefs,苦于没有Windows客户端, 本来想在Linux上mfsmount一个目录然后用samba做共享目录,但是这样太不简洁了. 当然豆瓣上有的小伙伴也说自己开发了moosefs的W ...
- vue和react全面对比(详解)
vue和react对比(详解) 放两张图镇压小妖怪 本文先讲共同之处, 再分析区别 大纲在此: 共同点: a.都使用虚拟dom b.提供了响应式和组件化的视图组件 c.注意力集中保持在核心库,而将其他 ...
- .net core IIS/Kestrel上传大文件的解决方法
大文件,就是内容的大小超过了一定数量的文件,比如1个GB的文件. 站点一般会限制上传文件的大小,如果超过了一定限制,则会报错误. 在处理大文件上传的方式上,IIS代理和Kestrel宿主服务器的处理方 ...
- Netty的ByteToMessageDecoder/LengthFieldBasedFrameDecoder
是个inbound handler,channelRead方法里面,用一个bytebuf(cumulation)来把下一个数据包和当前这一个拼在一起,以免同一个请求被拆包.然后callDecode,里 ...
- java中main函数的String[] args
写java程序时main函数必须有一个字符串数组即String[] args 作用:用来获取用户从命令行输入的参数 如果main函数中不写字符串数组,则将会报错
- 入门项目 A5-3 interface-user 第三方接口3
''' 用户接口层 ''' # 导入数据库包下面的处理数据模,为了使用其内部名称空间 from db import db_handler # 注册接口函数,接收名字与密码两个参数 def regist ...
- 入门项目 A4 db_handler 数据操作文件
''' 数据处理层 ''' from conf import settings # 以下代码中有提前定义的路径函数,需要导入配置文件包下面的设置模块 import json # 以下代码中有需要序列化 ...
- 创建一个vue 项目 必备的几个插件
第一步npm安装 首先:先从nodejs.org中下载nodejs 打开控制命令行程序(CMD),node -v 检查是否正常 使用淘宝NPM 镜像 npm install -g cnpm - ...
- C# 连接池开发,多连接高效应用开发,多连接自动维护管理。
本文将使用一个Github开源的组件库技术来实现连接池的操作,应用于一些情况下的频繁的网络连接操作. github地址:https://github.com/dathlin/HslCommunicat ...