xUtils的文件下载与安装,xUtils的文件上传
2018-04-10 18:41
295 查看
开篇报错注意:本教程是基于xUtils-2.6.14.jar版本实现的
由于studio中6.0以后安卓取消了httpclient,而xutils则基于httpclient开发的,所以现在无法使用,将会有以下的错误
Error:(55, 30) 错误: 无法访问HttpRequestBase
找不到org.apache.http.client.methods.HttpRequestBase的类文件
Error:(85, 30) 错误: 无法访问HttpEntityEnclosingRequest
找不到org.apache.http.HttpEntityEnclosingRequest的类文件
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
2 个错误
:app:compileDebugJavaWithJavac FAILED
解决方案:在使用xutils的modle的build.gradle的 android的下添加
这句话:useLibrary 'org.apache.http.legacy' 即可解决
xUtils的文件下载
[b]xUtils的文件上传[/b]
由于studio中6.0以后安卓取消了httpclient,而xutils则基于httpclient开发的,所以现在无法使用,将会有以下的错误
Error:(55, 30) 错误: 无法访问HttpRequestBase
找不到org.apache.http.client.methods.HttpRequestBase的类文件
Error:(85, 30) 错误: 无法访问HttpEntityEnclosingRequest
找不到org.apache.http.HttpEntityEnclosingRequest的类文件
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
2 个错误
:app:compileDebugJavaWithJavac FAILED
解决方案:在使用xutils的modle的build.gradle的 android的下添加
这句话:useLibrary 'org.apache.http.legacy' 即可解决
xUtils的文件下载
//这里Demo展示的是下载一个apk文件路径,下载后安装//其他文件可以删除文件的安装 public void xUtilsHttpUtilDonLoadFile(String downLoadUrl, String savePath) { //保存位置 //关于下边的File.separator原文The system-dependent string used to separate components in filenames ('/'). //其实就是代表了一个斜杠 final File filepath = new File(savePath + File.separator + "MyDownLoadText" + File.separator + downLoadUrl);//仅创建路径的File对象 if (!filepath.exists()) { filepath.mkdir();//如果路径不存在就先创建路径 } // 准备进度条Progress弹窗 final ProgressDialog dialog = new ProgressDialog(this); dialog.setCancelable(true);// 设置是否可以通过点击Back键取消 dialog.setTitle("下载中"); //Progress弹窗设置为水平进度条 dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);// 设置水平进度条 //httputils网络请求工具 HttpUtils http = new HttpUtils(); //下载请求 /* 第一参数:downLoadUrl是网络下载位置 第二参数:filepath.getPath()是下载保存位置 第三个参数:如果目标文件存在,接着未完成的部分继续下载。服务器不支持RANGE时将从新下载。 第四个参数:如果从请求返回信息中获取到文件名,下载完成后自动重命名。 第五个参数:下载的监听 4000 */ HttpHandler handler = http.download(downLoadUrl, filepath.getPath(), true, true, new RequestCallBack<File>() { @Override public void onStart() { dialog.show();//展示关闭弹窗 Log.i("开", "onStart: 开始下载"); } @Override public void onLoading(long total, long current, boolean isUploading) { Log.i("下载中", "onLoading:总共: " + total + "已下" + current); dialog.setMax((int) total); dialog.setProgress((int) current); } @Override public void onSuccess(ResponseInfo<File> responseInfo) { dialog.dismiss();//关闭弹窗 //安装下载的文件(如果不是apk这里可以不用安装,下载完成后自己看着办吧) Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(new File(filepath.getPath().toString())), "application/vnd.android.package-archive"); startActivity(intent); //卸载 /* Uri packageURI = Uri.parse("package:com.demo.CanavaCancel");//package:com.demo.CanavaCancel应用的包名 Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI); startActivity(uninstallIntent);*/ Log.i("完成", "onStart: 下载完成"); } @Override public void onFailure(HttpException error, String msg) { dialog.dismiss();//关闭弹窗 Log.i("取消", "onStart: 下载失败" + error.toString()); } }); }
[b]xUtils的文件上传[/b]
/* 这里是 xUtils的文件post上传, url是上传到网络的位置 userid是其他的参数 filePath是要上传的文件位置 */ public void xUtilsUpLoadFile(String url,String userid,String filePath){ //RequestParams对象是用来存放请求参数的 RequestParams params = new RequestParams(); params.addBodyParameter("userid",userid);//这里是一般的参数 params.addBodyParameter("file",new File(filePath));//这里才是重点上传文件的参数 //HttpUtils网络请求 HttpUtils http = new HttpUtils(); //发送请求 /** * 第一个参数:请求方式 *第二个参数:请求地址 *第三个参数:请求携带的参数类 *第四个参数:网络请求的监听 */ http.send(HttpRequest.HttpMethod.POST, url, params, new RequestCallBack<String>() { @Override public void onSuccess(ResponseInfo<String> responseInfo) { Log.i(TAG, "onSucceed:上传结果 "+responseInfo.result); } @Override public void onFailure(HttpException e, String s) { Log.i(TAG, "onFailure: 上传失败"+e.toString()); } }); }
相关文章推荐
- xUtils的文件下载与安装,xUtils的文件上传
- 云计算学习笔记004---hadoop的简介,以及安装,用命令实现对hdfs系统进行文件的上传下载
- [CentOS Python系列] 二.pscp上传下载服务器文件及phantomjs安装详解
- 使用ADB上传、下载文件和安装软件的方法
- 安装、进程-云计算学习笔记---hadoop的简介,以及安装,用命令实现对hdfs系统进行文件的上传下载-by小雨
- Windows端和Linux端上传下载文件 (lrzsz安装使用)
- Linux系统xshell安装上传下载文件命令rz sz
- 文件上传命令rz和下载命令sz的安装
- Android手机,使用adb上传文件,下载文件和安装文件
- Linux下rz/sz安装及使用方法_上传和下载文件
- 阿里云ubuntu上传下载文件 --- 安装 lrzsz,使用rz和sz命令上传或下载文件
- linux下如何安装rzsz (配合SecureCRT进行文件上传下载)
- Linux系统安装rz/sz实现本地和服务器文件上传下载
- 文件上传命令rz和下载命令sz的安装
- Android xUtils上传下载文件
- linux下lrzsz安装过程,SecureCRT上传下载文件工具
- Linux的文件上传和下载之一CentOS下的lrzsz组件安装和使用
- 解决 服务器vsftpd安装完成后,用winscp不能上传和下载文件的问题
- linux下lrzsz安装过程,SecureCRT上传下载文件工具
- linux下lrzsz安装过程,SecureCRT上传下载文件工具