安卓开发xutils-Post请求一个方法解决单张图片,多张图片,文字的上传
2017-06-20 12:01
1076 查看
前情提要
之前需求用到多张图片上传,在网上搜了一下,发现都是原生API的上传,之前也使用了Retrofit的
RequestBody.create(MediaType.parse("multipart/form-data"), file)实现上传图片但是发现不好用,扩展性差(PS:可能是我用的不好哈),我的代码中用到了xutils的注解模块,就想使用网络模块来实现。
准备工作
在build.gradle里面加入xutils包依赖
注册xutils(最好是在Application的OnCreate)
核心代码
自己在合适位置进行日志打印
之前需求用到多张图片上传,在网上搜了一下,发现都是原生API的上传,之前也使用了Retrofit的
RequestBody.create(MediaType.parse("multipart/form-data"), file)实现上传图片但是发现不好用,扩展性差(PS:可能是我用的不好哈),我的代码中用到了xutils的注解模块,就想使用网络模块来实现。
准备工作
在build.gradle里面加入xutils包依赖
compile 'org.xutils:xutils:3+'
注册xutils(最好是在Application的OnCreate)
//xutils的初始化 x.Ext.init(this);
核心代码
自己在合适位置进行日志打印
/** * @param callback 回调接口,通知UI线程更新UI * @param param 可变参数,可以理解为数组 * */ @Override public void upLaodImg(final AsyncCallback callback, final String... param) { RequestParams params=new RequestParams(URL);//参数是路径地址 List<KeyValue> list = new ArrayList<>(); for (int i=6;i<list.size();i++){//遍历图片,我传的图片为下标6开始的位置 try { list.add(new KeyValue("multiparts"//图片数组,或者单个图片的上传参数名 ,new File(param[i])));//这个参数取出来是图片在手机里的地址 }catch (Exception e){} } list.add(new KeyValue("Title", param[1])); list.add(new KeyValue("Content", param[2])); list.add(new KeyValue("orderType", param[0])); list.add(new KeyValue("Address", param[3])); list.add(new KeyValue("TxnAmt", param[4])); list.add(new KeyValue("moblNo", param[5])); list.add(new KeyValue("userId", MyApp.userId)); //设置编码格式为UTF-8,保证参数不乱码 MultipartBody body = new MultipartBody(list, "UTF-8"); params.setRequestBody(body); x.http().post(params,new Callback.CommonCallback<String>(){ @Override public void onSuccess(String result) { try { JSONObject jsonObject=new JSONObject(result); if (jsonObject.getString("code").equals("0")){ callback.onSuccess(jsonObject.getString("message")); }else { callback.onError(jsonObject.getString("message")); } } catch (JSONException e) { e.printStackTrace(); } } @Override public void onError(Throwable ex, boolean isOnCallback) { callback.onError("错误"); } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } });
相关文章推荐
- 表单图片文字同时上传的解决方法
- Android 开发 使用WebUploader解决安卓微信浏览器上传图片中遇到的bug
- android 开发使用图片异步缓存框架关于图片请求路径不变情况下的解决方法
- 微信公众号开发--上传图片“errcode":41005,"errmsg":"media data missing”错误解决方法 "errcode":41005,"errmsg":"media dat
- 102、xutils post和get请求上传参数的添加方法是分开的
- 转载---HttpUrlConnection发送post请求汉字出现乱码的一个解决方法及其原因
- Android开发中调用系统相册上传图片到服务器OPPO等部分手机上出现短暂的显示桌面问题的解决方法
- iOS开发-使用AFN实现GET/POST请求,以及文件下载/文件(图片)上传
- Uploadify在MVC中使用方法案例(一个视图多次上传单张图片)
- 开发工具异常之server2008中页面报错webform_postbackoptions未定义解决方法(原创)
- 图片和文字放一起,不能居中的解决方法
- 用Eclipse工具开发j2me时出现图片不显示解决方法
- jsp fckeditor 上传中文图片乱码问题的解决方法
- Asp.net 上传图片添半透明图片或文字水印的方法(二)
- 当网站不允许上传asp cer cdx htr文件时的一个解决方法! Author: Neeao From:http://www.neeao.info
- .net 文件上传 超过最大请求长度 解决方法
- 用图片代替文字时解决方法_主要应用于SEO或者在不支持CSS的浏览器下使用
- Asp.net 上传图片添半透明图片或文字水印的方法(一)
- IE7在图片上传时,无法预览本地图片的问题解决方法
- 上传图片错误提示:error=3,原因及解决方法