开篇报错注意:本教程是基于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的文件下载

    //这里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时将从新下载。
第四个参数:如果从请求返回信息中获取到文件名,下载完成后自动重命名。
第五个参数:下载的监听
*/
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());
}
});
}

 xUtils的文件上传

 /*
这里是 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的文件上传的更多相关文章

  1. linux下安装简单的文件上传与下载工具 lrzsz

    编译安装 1.从下面的网站下载 lrzsz-1.12.20.tar.gz wget https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz 2.查看里面的I ...

  2. SugarCRM安装过程——PHP文件上传限制问题

    找到D:\xampp\php目录下,php文件中的php.ini文件,用写字板打开: 1.查找post_max_size,指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值,默认为8M, ...

  3. MVC文件上传-使用jQuery.FileUpload和Backload组件实现文件上传

    本篇使用客户端jQuery-File-Upload插件和服务端Badkload组件实现多文件异步上传.MVC文件上传相关兄弟篇: 处理文件上传的服务端组件Backload 用于处理文件上传的服务端组件 ...

  4. ajaxFileUpload+struts2实现多文件上传

    以前有介绍过ajaxFileUpload实现文件上传,但那是单文件的,这次介绍多文件上传. 单文件上传参考:http://blog.csdn.net/itmyhome1990/article/deta ...

  5. MVC文件上传04-使用客户端jQuery-File-Upload插件和服务端Backload组件实现多文件异步上传

    本篇使用客户端jQuery-File-Upload插件和服务端Badkload组件实现多文件异步上传.MVC文件上传相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小  ...

  6. java中的文件上传下载

    java中文件上传下载原理 学习内容 文件上传下载原理 底层代码实现文件上传下载 SmartUpload组件 Struts2实现文件上传下载 富文本编辑器文件上传下载 扩展及延伸 学习本门课程需要掌握 ...

  7. jmeter测试文件上传功能

    最近为了完成自动化KPI开始慢慢接触jmeter,其中遇到了不少问题,今天就遇到了文件上传的问题,在这里记录下加深记忆,也可供jmeter初级使用者作为一个参考.另外论坛上已有同事发过关于jmeter ...

  8. centos 6.5下安装文件上传下载服务

    centos 6.5下安装文件上传下载服务 由于每次在CentOS中要下载一些配置文件到物理机,和上传一些文件到服务器,导致来回的开启ftp软件有点麻烦,这里我们可以使用文件上传下载服务,来解决上传和 ...

  9. CentOS下安装配置NFS并通过Java进行文件上传下载

    1:安装NFS (1)安装 yum install nfs-utils rpcbind (2)启动rpcbind服务 systemctl restart rpcbind.service 查看服务状态 ...

随机推荐

  1. javascript 概述及基础知识点(变量,常量,运算符,数据类型)

    JavaScript概述 1.1 什么是JavaScript: javaScript(简称js),是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言.同时也是一种广泛用于客户端Web开发的脚本语 ...

  2. poj2456 二分逼近寻找正确答案

    Aggressive cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10078   Accepted: 4988 ...

  3. C#代码设置窗体和Panel的位置大小

    1.设置Panel位置大小 private void button2_Click(object sender, EventArgs e) { panel1.Visible = false; panel ...

  4. android之ListView,详细介绍实现步骤,举例,自定义listview适配器

    android之ListView,详细介绍实现步骤,举例,自定义listview适配器 本文来源于www.ifyao.com禁止转载!www.ifyao.com android中如何使用listVie ...

  5. ECshop使用财付通接口支付时出现“[3006]您的请求无效,请重新再试

    ECshop使用财付通接口支付时出现“[3006]您的请求无效,请重新再试.”解决方案\includes\modules\payment\tenpay.php 行 104原来的为 $bill_no = ...

  6. 记一道css面试题 : 三栏布局两边宽度固定,中间宽度自适应,并且布局随屏幕大小改变。

    前几天面试时有道css题没做出来,回来好好学习一番后把其记录下来. 题目是这样的:左中右三栏布局,左右两栏宽度固定,左右两栏的宽度为200像素,中间栏宽度自适应.当屏幕小于600px时,3栏会分别占用 ...

  7. secure_file_priv 配置项对数据导入导出的影响

    secure_file_priv  mysqld 用这个配置项来完成对数据导入导出的限制. 例如我们可以通过 select * from tempdb.t into outfile '/home/my ...

  8. c# List集合的Find方法适用

    CabinEntity为你定义的实体 CabinEntity existCabin = listCabins.Find(delegate(CabinEntity cabinE)             ...

  9. /users/products.:format 这种写法的其对应解析字符写法

    “products.:format" 这种写法可以有对应的下面两种路由形式 /products.json /products.xml "products.:format?" ...

  10. 读mongoose api 记录

    mongoose 需要在Schemas基础上进行使用 var mongoose = require('mongoose'); var Schema = mongoose.Schema; var blo ...