HTTP POST上传文件的格式说明
来源:互联网 发布:良朴袜子 知乎 编辑:程序博客网 时间:2024/05/17 02:40
前一阵,因为项目需要,将之前自己封装的黑莓10上的HTTP库添加了Post上传文件的接口,实现后一直也没有测试(因为之前实现过.Net上的,所以这次自信满满的觉得肯定不会有问题),今天实现在头像上传的功能时,居然一直出错,抓了半天包,修改了一上午也没找到原因,后来实在没辙时,想到了RFC文档,然后发现这次出问题又是一次自己粗心犯二导致的,所以发个博文记录一下以免以后好了伤疤又忘了疼。
... contents of file1.txt ...
关于boundary:
RFC文档上描述,A boundary is selected that does not occur in any ofthedata.意思就是选择作为boundary的数据不会出现在要上传的数据里,这一点毫无疑问,如果作为分界数据的boundary,会出现在上传的数据里,那么boundary就没有意义了~其实RCF上没有规定boundary的格式,但是大多数实现里boundary都采用了-----配合一个随机数据的方式。
关于multipart/form-data上传方式:
其实在封装HTTPPOST上传文件的方法时,只要实现这一种即可(单个文件也可以用这种方式上传),下面上RFC上的Sample:
Content-Type: multipart/form-data, boundary=AaB03x
--AaB03x
Content-Disposition: form-data; name="field1"
Joe Blow
--AaB03x
Content-Disposition: form-data; name="pics";filename="file1.txt"
Content-Type: text/plain
--AaB03x--
文件分界这里要切记是-- +boundary(这次出的问题也是在这犯二了,居然没有在boundary前加这两个-),结束的标志是-- + boundary +--,在每一段信息描述后要跟一个\r\n再跟文件数据,文件数据后面也要跟一个\r\n,这里也是一个关键点,其他只要按照上面的Sample去实现就好了,如果Content-Type部分不想添加根据文件后缀名填充值的话,可以直接用application/octet-stream。
RFC文档:http://www.ietf.org/rfc/rfc1867
Content-Type对照表:http://tool.oschina.net/commons
0 0
- HTTP POST上传文件的格式说明
- HTTP POST上传文件的格式示范
- HTTP上传文件的格式
- http post 上传文件
- HTTP POST上传文件
- post请求上传文件和文本时http格式
- HTTP POST的文件上传问题
- 基于 HTTP POST multipart 的文件上传
- 上传图片的http post请求的格式
- HTTP 上传文件的协议格式
- http post 文件上传解析
- http协议 文件上传 POST
- http post方式上传文件
- 将文件通过http的post方法上传到服务器
- vc中如何通过http的post方式上传文件
- 关于通过http post进行文件上传的问题
- HTTP POST请求报文格式分析与Java实现文件上传
- HTTP POST请求报文格式分析与Java实现文件上传
- Linux Shell自定义快捷指令
- 如何手动安装Touch Preview&n…
- One is All App Api
- Blackberry 10如何显示圆形图片
- hdu-1721
- HTTP POST上传文件的格式说明
- 记一次exe打开方式被篡改的修复经…
- SVN常见错误两则记录
- 计算几何--矢量和叉积
- JS 深入理解setTimeout
- LogMiner 示例
- openfire 更换服务器IP
- oc 书籍推荐(知识点)
- 百度Android定位SDK4.2