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. Loadrunner加密算法脚本与token作为get请求url上的参数处理

    1.当字符串被封装好加密时(下例将算法封装在md5中),使用Loadrunner编写脚本,需要进行如下操作:       1)将md5.h文件添加到Extra Files 下,如图(Loadrunne ...

  2. github命令总结

    一.创建版本库 1.创建一个空目录 $ mkdir learngit $ cd learngit $ pwd //pwd命令用于显示当前目录 2.创建一个版本库(通过git init命令把这个目录变成 ...

  3. JJTree Tutorial for Advanced Java Parsing

    The Problem JJTree is a part of JavaCC is a parser/scanner generator for Java. JJTree is a preproces ...

  4. TP方法中打印地址栏中所有的参数:

    print_r($this->request->param());//打印出地址栏中所携带的所有参数:

  5. 浮点型的三个特殊值 Double.NEGATIVE_INFINITY Double.POSITIVE_INFINITY Double.NaN

    Double.NEGATIVE_INFINITY 负无穷 Double.POSITIVE_INFINITY 正无穷 Double.NaN 非数 注意:浮点数才有无穷的概念,整数是没有的 比如: int ...

  6. fastTime从后台传过来显示格式的处理

    1.可以在控制台用syso查看 QuestionFeedbackView qfv = on_LineManageService.getBringupHead(projectNo);//qfv是一个内含 ...

  7. 入门项目 A3 src 主代码

    import json # 调度内置 json 模块,用于数列化输入输出,相比eval,功能更全面,融合度更高from conf import settings # 从配置文件configure (包 ...

  8. acrgis 解决矢量转栅格分辨率过大造成连续值变离散且出现空白

    目标:解决北京河流矢量polygon 转栅格的问题 设置栅格大小和影像一致30*30----结果发现,因为cell过大,原本连续的是矢量面变得不连续了,特别细的河流会出现间断(如下图所示): 1号 网 ...

  9. C# 时间戳 整理

    以前遇到时间戳,都是那公共类里面的方法来用.未曾理解过它的原理. C# 时间类型枚举     分为local.utc.以及Unspecified local:当地时间,例如我们所在的东八区,所采用的北 ...

  10. pycharm中添加PATH变量

    最近在pycharm中run程序,终端terminal没有问题,在pycharm找不到$PATH中的变量值,如下图所示 同样的命令,在终端敲就没毛病,终端echo $PATH的时候,显示的是有cuda ...