Volley 网络框架实现文件上传
来源:互联网 发布:颜值高的读书笔记软件 编辑:程序博客网 时间:2024/05/04 03:45
1.首先自己写一个MultipartRequest类,继承自StringRequest。
import com.android.internal.http.multipart.Part;import com.android.volley.AuthFailureError;import com.android.volley.Response;import com.android.volley.VolleyLog;import com.android.volley.toolbox.StringRequest;import java.io.ByteArrayOutputStream;import java.io.IOException;public class MultipartRequest extends StringRequest { private Part[] parts; public MultipartRequest(String url, Part[] parts, Response.Listener<String> listener, Response.ErrorListener errorListener) { super(Method.POST, url, listener, errorListener); this.parts = parts; } @Override public String getBodyContentType() { return "multipart/form-data; boundary=" + Part.getBoundary(); } @Override public byte[] getBody() throws AuthFailureError { ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { Part.sendParts(baos, parts); } catch (IOException e) { VolleyLog.e(e, "error when sending parts to output!"); } return baos.toByteArray(); }}2.使用方法
//构造参数列表List<Part> partList = new ArrayList<Part>();partList.add(new StringPart("username", "hellfire",“UTF-8”));partList.add(new StringPart("email", "ouyangjun@aliyun.com",“UTF-8”));try { partList.add(new FilePart("photo", new File("/mnt/sdcard/Test/hellfire.jpg")));} catch (FileNotFoundException e) { e.printStackTrace();}//获取队列RequestQueue requestQueue = Volley.newRequestQueue(this);String url = "http://test/profileUpdate.do";//生成请求MultipartRequest profileUpdateRequest = new MultipartRequest(url, partList.toArray(new Part[partList.size()]), new Response.Listener<String>() { @Override public void onResponse(String response) { //处理成功返回信息 String info = response.substring(0, 20); Toast.makeText(getApplication(), info, Toast.LENGTH_SHORT).show(); }}, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { //处理失败错误信息 Log.e("MultipartRequest", error.getMessage(), error); Toast.makeText(getApplication(), error.getMessage(), Toast.LENGTH_SHORT).show(); }});//将请求加入队列requestQueue.add(profileUpdateRequest);
阅读全文
1 0
- Volley 网络框架实现文件上传
- Volley框架(四):使用Volley上传文件
- Volley框架上传文件TimeoutError问题
- Android网络通信框架Volley——自定义Request(Get、Post、文件上传)
- Android Volley网络请求框架 实现post方法并带Map参数上传
- Android Volley网络请求框架 实现post方法并带Map参数上传
- Volley框架实现Android网络请求笔记
- SpringMVC+Volley实现Android端上传文件
- Android Volley框架定制PostUploadRequest上传文件(图片)
- Android Volley框架定制PostUploadRequest上传文件(图片)
- 网络请求框架---Volley
- 网络通信框架Volley
- Volley网络框架详解
- Android网络框架Volley
- Android网络框架Volley
- Android网络框架Volley
- Andoid 网络框架--Volley
- 网络框架Volley
- 示波器的使用
- NSDictionary的一些用法
- Caffe——命令行解析
- 【Android 进阶】Activity 、Fragment 和 Presenter 的高层封装
- 【SQLite入门】使用SQLite、创建数据库、创建表、使用Jdbc连接SQLite
- Volley 网络框架实现文件上传
- Laravel5.2连接SQL Server
- LIS-O(NlogN)算法
- unix网咯编程笔记
- 006 修正maven install失败的问题
- window配置maven
- 也谈jsp:include js文件中文乱码
- Linux CentOS7下 mysql-5.7.1x tar.gz包安装教程
- 想编程,是勤奋自学还是去培训班学习?