multipart data using Android Volley
来源:互联网 发布:兰亭序周杰伦知乎 编辑:程序博客网 时间:2024/06/15 14:13
I am using Volley for calling web request for my app. But as i am Volley for first time. I just want to know that how to upload image/video media data via volley using multipart.
I searched for it many sites, I got some results over
How to send a “multipart/form-data” POST in Android with Volley
But, these methods does’nt look good or efficients. So, Please help me that how to upload media data using volley. Or i should not use Volley, and should go for the previous manual approach
Anyway, all thoughts and answers are extremely appreciated. Thank you for your help.
原文链接
解决方案:
import java.io.ByteArrayOutputStream;import java.io.File;import java.io.IOException;import java.util.Map;import org.apache.http.HttpEntity;import org.apache.http.entity.mime.HttpMultipartMode; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.entity.mime.content.FileBody; import com.android.volley.AuthFailureError;import com.android.volley.NetworkResponse;import com.android.volley.Request;import com.android.volley.Response;import com.android.volley.VolleyLog;public class MultipartRequest extends Request<String> {// private MultipartEntity entity = new MultipartEntity(); MultipartEntityBuilder entity = MultipartEntityBuilder.create();HttpEntity httpentity;private static final String FILE_PART_NAME = "file";private final Response.Listener<String> mListener;private final File mFilePart;private final Map<String, String> mStringPart;public MultipartRequest(String url, Response.ErrorListener errorListener, Response.Listener<String> listener, File file, Map<String, String> mStringPart) { super(Method.POST, url, errorListener); mListener = listener; mFilePart = file; this.mStringPart = mStringPart; entity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); buildMultipartEntity(); } public void addStringBody(String param, String value) { mStringPart.put(param, value);} private void buildMultipartEntity() { entity.addPart(FILE_PART_NAME, new FileBody(mFilePart)); for (Map.Entry<String, String> entry : mStringPart.entrySet()) { entity.addTextBody(entry.getKey(), entry.getValue()); } } @Override public String getBodyContentType() { return httpentity.getContentType().getValue();} @Override public byte[] getBody() throws AuthFailureError { ByteArrayOutputStream bos = new ByteArrayOutputStream(); try { httpentity = entity.build(); httpentity.writeTo(bos); } catch (IOException e) { VolleyLog.e("IOException writing to ByteArrayOutputStream"); } return bos.toByteArray();} @Override protected Response<String> parseNetworkResponse(NetworkResponse response) { return Response.success("Uploaded", getCacheEntry());} @Override protected void deliverResponse(String response) { mListener.onResponse(response);} }
注意需要在http://hc.apache.org/downloads.cgi 下载httpcomponents-client-*
解压之后,导入以下三个jar包
httpmime, httpcore and httpclient
0 0
- multipart data using Android Volley
- 【Android Net】Volley实现(multipart/form-data)Post请求
- android向服务器上传multipart/form-data文件(upload using multipart post using httpclient in android)
- Android训练课程(Android Training) - 使用Volley传输网络数据(Transmitting Network Data Using Volley)
- Transmitting Network Data Using Volley - Volley is an HTTP library that makes networking for Android
- Android Using Volley
- Http client to POST using multipart/form-data
- Transmitting Network Data Using Volley - Sending a Simple Request
- Transmitting Network Data Using Volley - Setting Up a RequestQueue
- Transmitting Network Data Using Volley -Making a Standard Request
- Transmitting Network Data Using Volley -Implementing a Custom Request
- 跟Google 学代码:Transmitting Network Data Using Volley
- Transmitting Network Data Using Volley 之Sending a Simple Request
- Asynchronous HTTP Requests in Android Using Volley
- Asynchronous HTTP Requests in Android Using Volley
- Asynchronous HTTP Requests in Android Using Volley
- Asynchronous HTTP Requests in Android Using Volley
- Asynchronous HTTP Requests in Android Using Volley
- 联合体union 与结构体struct
- 图解TCP-IP协议
- 30本互联网相关的电子书
- Spark朴素贝叶斯(naiveBayes)
- 图的dfs遍历和bfs遍历
- multipart data using Android Volley
- Http请求中Content-Type讲解以及在Spring MVC中的应用
- ORACLE触发器详解
- 像外行一样思考,像专家一样实践
- 苹果开发 笔记(10)
- ADS8332芯片驱动程序
- Go语言 安装、Notepad++配置Go 开发环境
- nginx 启动停止 php 5.3.18 中 php-fpm 启动 关闭 配置 成服务启动
- android Toast大全(五种情形)建立属于你自己的Toast