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 文件上传的更多相关文章

  1. Android开发之httpclient文件上传实现

    文件上传可能是一个比較耗时的操作,假设为上传操作带上进度提示则能够更好的提高用户体验,最后效果例如以下图: 项目源代码:http://download.csdn.net/detail/shinay/4 ...

  2. Android Retrofit 2.0文件上传

    Android Retrofit 实现(图文上传)文字(参数)和多张图片一起上传 使用Retrofit进行文件上传,肯定离不开Part & PartMap. public interface ...

  3. Android采取async框架文件上传

    页面效果 须要的权限 <uses-permission android:name="android.permission.INTERNET"/> 网络訪问权限; 布局文 ...

  4. Android使用HttpClient实现文件上传到PHP服务器,并监控进度条

    上传 服务器端PHP 代码如下 : <?php $target_path = "./tmp/";//接收文件目录 $target_path = $target_path.($ ...

  5. android webview type=file文件上传,安卓端代码

    http://stackoverflow.com/questions/5907369/file-upload-in-webview http://blog.csdn.net/longlingli/ar ...

  6. Android WebView选择本地文件上传

    This sample demonstrate android webview choose file to upload. I just implement the client code ,the ...

  7. Retrofit2文件上传下载及其进度显示

    序 前面一篇文章介绍了Retrofit2的基本使用,这篇文章接着介绍使用Retrofit2实现文件上传和文件下载,以及上传下载过程中如何实现进度的显示. 文件上传 定义接口 1 2 3 @Multip ...

  8. Rxjava+Retrofit2+Okhttp3多文件上传(服务器端代码+客户端代码)

    所有代码亲测可用,如有问题,欢迎指正. 首先在ApiService接口文件中新建文件上传接口 public interface ApiService { static final String BAS ...

  9. Android OkHttp文件上传与下载的进度监听扩展

    http://www.loongwind.com/archives/290.html 上一篇文章介绍了用Retrofit实现文件的上传与下载,但是我们发现没办法监听上传下载的进度,毕竟我们在做开发的时 ...

随机推荐

  1. Linux服务器后门自动化查杀教程

    一.说明 如果出现文件上传漏洞和命令执行类漏洞(包括命令注入.缓冲区溢出.反序列化等)都会让人担心,系统是否系统已被上传webshell甚至植入木马程序.如果依靠人工排查,一是工作量大二是需要一定程度 ...

  2. Problem B: 平面上的点和线——Point类、Line类 (II)

    Description 在数学上,平面直角坐标系上的点用X轴和Y轴上的两个坐标值唯一确定,两点确定一条线段.现在我们封装一个“Point类”和“Line类”来实现平面上的点的操作. 根据“append ...

  3. 前端开发【第一篇: HTML】

    HTML初识  1.什么是HTML? HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).  2.网页的组成 我们平时 ...

  4. 2/18 (pycharm 快捷键、循环、join语句)

    Alt + Enter 快速修正 Ctrl + / 行注释/取消行注释 Ctrl + Shift +  /  块注释 Ctrl + Alt + I    自动缩进 CTRL + D  复制选定的区域或 ...

  5. GOPATH

    环境变量 GOPATH 的值可以是一个目录的路径,也可以包含多个目录路径,每个目录都代表 Go 语言的一个工作区(workspace).这些工作区用于放置 Go 语言的源码文件(source file ...

  6. 大大维的游戏机计划1--贪吃蛇v1

    本文为大大维原创,最早于博客园发表,转载请注明出处!!! 虽然本人一直是个免费的游戏测试员(/手动滑稽),但一直有着一个游戏架构师的梦想.正如马爸爸所说,梦想还是要有的,万一实现了呢? 这些天放寒假, ...

  7. split根据一个元素分割语句

    a = ‘https://www.baidu.com/s?wd=%E7%AE%80%E4%B9%A6&rsv_spt=1&rsv_iqid=0xdfa3666f00083a6f& ...

  8. 详解Makefile 函数的语法与使用 (转)

    使用函数: 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做变量来使 ...

  9. Centos系统下 Gitolite安装与相关配置(git权限控制软件)

     确保已经安装了最新版的git服务Git源码安装 Linux指定安装目录,并且创建了 用户名为git 的账户 修改.gitolite.rc #设置gitolite管理的仓库目录 GL_REPO_BAS ...

  10. RabbitMQ学习之旅(一)

    RabbitMQ学习总结(一) RabbitMQ简介 RabbitMQ是一个消息代理,其接收并转发消息.类似于现实生活中的邮局:你把信件投入邮箱的过程,相当于往队列中添加信息,因为所有邮箱中的信件最终 ...