Android中自定义MultipartEntity实现文件上传以及使用Volley库实现文件上传
2015-10-13 13:40
183 查看
前言
在开发当中,我们常常需要实现文件上传,比较常见的就是图片上传,比如修改个头像什么的。但是这个功能在Android和iOS中都没有默认的实现类,对于Android我们可以使用Apache提供的HttpClient.jar来实现这个功能,其中依赖的类就是Apache的httpmime.jar中的MultipartEntity这个类。我就是要实现一个文件上传功能,但是我还得下载一个jar包,而这个jar包几十KB,这尼玛仿佛并非人间!今天我们就来自己实现文件上传功能,并且弄懂它们的原理。在上一篇文章HTTP POST请求报文格式分析与Java实现文件上传中我们介绍了HTTP POST报文格式,如果有对POST报文格式不了解的同学可以先阅读这篇文章。
自定义实现MultipartEntity
我们知道,使用网络协议传输数据无非就是要遵循某个协议,我们在开发移动应用时基本上都是使用HTTP协议。HTTP协议说白了就是基于TCP的一套网络请求协议,你根据该协议规定的格式传输数据,然后服务器返回给你数据。你的协议参数要是传递错了,那么服务器只能给你返回错误。这跟间谍之间对暗号有点相似,他们有一个规定的暗号,双方见面,A说: 天王盖地虎,B对: 宝塔镇河妖。对上了,说事;对不上,弄死这B。HTTP也是这样的,在HTTP请求时添加header和参数,服务器根据参数进行解析。形如 :
?
?
?
例如我要向服务器发送一个文本、一张bitmap图片、一个文件,即这个请求有三个参数。代码如下 :
?
?
明白了这些道理,看看代码也就应该明白了吧。
Volley中实现文件上传
Volley是Google官方推出的网络请求库,这个库很精简、优秀,但是他们也没有默认添加文件上传功能的支持。我们今天就来自定义一个Request实现文件上传功能,还是需要借助上面的MultipartEntity类,下面看代码:?
?
效果图
这是我post到我的应用的截图 :相关文章推荐
- android 圆形头像
- Android 安全机制
- Android 事件总线OTTO用法快速入门
- android 读取txt文件内容
- android 从服务器请求url并做圆角处理
- android手机两种方式获取IP地址
- Android 手把手教你View绘制过程--自动排列View的容器
- 博客小技巧:程序演示效果GIF图录制
- android 图片缓存相关杂记
- 【月报】Android开发实习的第一个月——为什么进度这么慢
- Android组件、工具、框架大全【借鉴】
- Android控件RadioButton&RadioGroup
- Android实现监听电话呼叫状态的方法
- android编程实现电话录音的方法
- Android开发总结笔记 四大组件之Activity(上) 1-2-1
- android studio 整合百度地图开发
- Android通讯录添加号码
- android中图片滑动过程中花屏问题
- Android中仿淘宝商品详情ViewPager页面数据手动滑动
- Android中使用JNI开发遍历所有文件总结