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. 牛客网第4场A

    链接:https://www.nowcoder.com/acm/contest/142/A 来源:牛客网 题目描述 A ternary , , or . Chiaki has a ternary in ...

  2. 【转】.Net Core中的Api版本控制

    原文链接:API Versioning in .Net Core 作者:Neel Bhatt 简介 Api的版本控制是Api开发中经常遇到的问题, 在大部分中大型项目都需要使用到Api的版本控制 在本 ...

  3. window.localStorag使用

    H5本地缓存: 删除: window.localStorage.removeItem("parentNode") 写入: window.localStorage.setItem(& ...

  4. QComboBox样式

    https://blog.csdn.net/lys211/article/details/43956979https://blog.csdn.net/x_nazgul/article/details/ ...

  5. js 浏览器 宽高 各种

    常用: JS 获取浏览器窗口大小   // 获取窗口宽度   if (window.innerWidth)   winWidth = window.innerWidth;   else if ((do ...

  6. Python _Mix*9

    1. 函数 函数是对功能的封装 语法: def 函数名(形参列表): 函数体(代码块) 代码块中有可能包含return 调用: 函数名(实参列表) def mix(a,b): #def 函数名(a和b ...

  7. .net core 使用log4net日志组件

    一个web站点必须要记录日志,否则哪里出错了,完全是黑娃找黑妹,两眼一抹黑. 最常用的就是log4net日志组件.我们可以通过扩展加入日志组件. 第一步:在项目中NuGet log4net包,即 In ...

  8. Windows环境安装tesseract-ocr 4.00并配置环境变量

    最近要做文字识别,不让直接用别人的接口,所以只能尝试去用开源的类库.tesseract-ocr是惠普公司开源的一个文字识别项目,通过它可以快速搭建图文识别系统,帮助我们开发出能识别图片的ocr系统.因 ...

  9. 51单片机数据类型int,float,指针所占字节数

    1.int===2个字节 2.sfr===特殊功能寄存器,也是一种扩充数据类型,占用1个内存单元,利用它可以访问51单片机内的所有特殊功能寄存器. sfr P1 = 0x90;/////////这一句 ...

  10. Windows10 VS2017 C++ xml解析(tinyxml2库)

    首先下载tinyxml2 7.0.1库: https://github.com/leethomason/tinyxml2/releases 打开tinyxml2,然后升级sdk,解决方案->重定 ...