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. jQuery.ready() 函数详解

    jQuery.ready() 函数详解 ready()函数用于在当前文档结构载入完毕后立即执行指定的函数. 该函数的作用相当于window.onload事件. 你可以多次调用该函数,从而绑定多个函数, ...

  2. LoadRunner遇到的错误及解决方法

    1.返回的报文太长: intweb_set_max_html_param_len(const char * length); intweb_set_max_html_param_len(") ...

  3. Vim 常用配置及插件安装使用

    在 Linux 中习惯了 vim 编辑器. 找了一些资料后自己尝试配置起来了.下面是一些过程. 首先需要知道 vim 相关的配置都是写在 ~/.vimrc 文件中.我下面的笔记只配置了一些我常用的功能 ...

  4. ubuntu 安装 nvm 管理Node.js 以及vim 插件增强

    安装curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bashsource ~/.bashr ...

  5. ubuntu 16.04 安装brackets

    1 github 上下载deb包 2 双击deb包但是安装不了(无任何提示,是因为缺少lib文件) 网上给出的解决方案 使用debtool 接压 deb包 把缺少的lib复制进去 配置文件中去掉该 l ...

  6. 谷歌浏览器chrome的vuejs devtools 插件的安装

    (推荐方法2) 安装方法1: 需正常打开chrome商店,搜索vuejs devtools 安装.chrome://extensions/ 开发者工具-扩展程序下启用: 方法2: github下载插件 ...

  7. Python基础03_pycharm

    pycharm的安装还是很简单的,一路next. 看起来Jet Brains 家的产品长相都差不多啊. 主要是create new project时,路径和解释器的选择,我电脑上有2.7和3.6 所以 ...

  8. 疑问:VS在调试的过程中,总是会提示正在加载picface.dll的符号,然后卡死在那

    环境: 硬件环境: PC 软件环境: Windows7 VS2012 MFC程序调试 现象: 调试的过程中,提示“正在从以下目录加载picface.dll的符号:C:\windows\dll”,然后就 ...

  9. wordpress搭建自己的博客~

    去官方网站下载wordpress,并解压缩.下载链接:https://cn.wordpress.org/ wordpress是一款开源的PHP框架,搭建个人博客网站最实用的选择之一,甚至你都不需要懂P ...

  10. FreeSWITCH与FreeSWITCH对接

    (主机A ---> 主机B)192.168.100.A主机:修改/usr/local/freeswitch/conf/dialplan/default.xml 10         <ex ...