Android xutil上传下载文件
1.在build.gradle下加入compile 'org.xutils:xutils:3.5.0'
2.在AndroidManifest.xml下加入权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
3.在Application文件按的oncreate方法下加入:
x.Ext.init(this);
//x.Ext.setDebug(BuildConfig.DEBUG); // 是否输出debug日志, 开启debug会影响性能.
4.上传图片:
public void uploadPhoto(String filePath, String url) {
HttpUtils httpUtils = new HttpUtils(30000);
RequestParams params = new RequestParams();
params.addBodyParameter("file", new File(filePath));
//以post的方式上传图片
httpUtils.send(HttpMethod.POST, url, params, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
result = " ";
showInfo("上传失败");
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
try {
List<UploadImage> uploadimageList = (ArrayList<UploadImage>) JsonUitl.stringToList(arg0.result, UploadImage.class);
if (uploadimageList.size() > 0) {
result = uploadimageList.get(0).getUrl();
}
} catch (Exception r) {
String s = r.getMessage();
}
}
});
}
5 .下载图片
ExecutorService executorService = Executors.newCachedThreadPool();
try {
JSONArray jsonArray=new JSONArray(result);
if(jsonArray.length()>0){
for(int i=0;i<jsonArray.length();i++) {
final JSONObject jsonObject = (JSONObject) jsonArray.get(i);
executorService.execute(new Runnable() {
@Override
public void run() {
try {
//图片的请求路径
RequestParams requestParams = new RequestParams("http://**************/"+jsonObject.getString("resourceAddress"));
//图片保存在本地路径 requestParams.setSaveFilePath("/sdcard/tudou/"+jsonObject.getString("resourceAddress"));
x.http().get(requestParams, new Callback.ProgressCallback<File>() {
//等待时回调方法
@Override
public void onWaiting() {
}
//开始后回调方法
@Override
public void onStarted() {
}
//加载时回调方法
@Override
public void onLoading(long total, long current, boolean isDownloading) {
}
//下载成功的回调方法
@Override
public void onSuccess(File result) {
}
//出错时回调方法
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
//取消时回调方法
@Override
public void onCancelled(CancelledException cex) {
}
//完成时回调方法
@Override
public void onFinished() {
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
} catch (Exception e) {
e.printStackTrace();
}
6.使用adb命令查看下载结果:
7.使用adb命令导入到本地电脑查看