模拟提交有文件上传的表单(通过http模拟上传文件)
来源:互联网 发布:管家婆数据库密码 编辑:程序博客网 时间:2024/06/03 15:56
(原文地址)http://www.cnblogs.com/chy710/archive/2010/02/22/1671007.html
通过HTTP模拟GET或POST请求,提交数据到服务端获取响应,比较常见些;但如上传文件到服务端,使用html form当然简单了,而因环境所限有时需要使用模拟方法去提交有附件(文件上传)的表单。我们暂且不说如何去模拟数据,通过一个简单的form看看当请求发生时,客户端提交了什么样的数据给服务端。
下面是一个简单的html form,两个文本输入框,一个文件上传(这里我选择一张图片),注意有文件上传的form的enctype属性。
为了查看表单提交时,向服务端post了什么数据,这里我使用Fiddler来查看。Fiddler确实是个不错的工具,注意当url主机地址是localhost时Fiddler捕获不到,需要再localhost后加一点(.)即可,打开Fiddler,浏览带上面form的page,输入数据提交,此时在Fiddler中可看到post的数据了。下面是一部份数据的截图。
分析其中的数据不难得出,一个表单中的数据域(input type="text")对应的格式为
-----------------------------7da119c1004a6
Content-Disposition: form-data; name="content"
this is a txt value
一个文件(input type="file")对应的格式为(通常为表单最后一个参数)
-----------------------------7da119c1004a6[文件内容]
Content-Disposition: form-data; name="image0"; filename="E:\CAI\875.jpg"
Content-Type: image/pjpeg
结尾处是-----------------------------7da119c1004a6--
有了上面的数据做参考,按照其格式组织数据,post到服务端,同样可以达到html form提交的效果。要特别注意其格式:如回车换行,差一个都可能得不到正确的响应,还有请求的Content-Length一定计算对。下面是一个参考:
标签:模拟提交表单,模拟文件上传,http post请求
http://chy710.cnblogs.com
- 模拟提交有文件上传的表单(通过http模拟上传文件)
- 模拟提交有文件上传的表单(通过http模拟上传文件)
- java 模拟表单方式提交上传文件
- java 模拟表单方式提交上传文件
- Net模拟http表单文件上传
- 利用socket模拟http的混合表单上传(在一个请求中提交表单并上传多个文件)
- HttpClient4模拟带文件上传的表单提交
- curl 模拟表单提交文件 跨域跨服务器上传文件
- python 模拟表单上传文件
- python_模拟表单上传文件
- Android 表单模拟,文件上传!
- python 模拟表单上传文件
- C#模拟form表单提交数据,上传文件
- 模拟form表单提交(包含文件上传)
- android 文件上传(POST方式模拟表单提交)
- HttpClient4.5.2模拟表单post提交上传文件
- 用java模拟html表单(form)提交数据包含多文件上传表单提交。
- CURL模拟表单post提交及相关常用参数的使用(包括提交表单同时上传文件)
- iotop 进程简介
- NTP服务架构和使用
- Asp.Net函数大全!(精心收集,实例可直接运行!)
- 为什么x264_intra_rd_refine 相对x264_intra_rd 来说是个refine
- Web服务器搭建
- 模拟提交有文件上传的表单(通过http模拟上传文件)
- Asp.net下使用Extjs进行提示
- MemcacheQ - Simple Queue Service over Memcache
- Using Open vswitch with Fedora 17
- 二叉树的基本操作,前序遍历,后续遍历,中序遍历
- fopen打开相对路径的文件
- JDK1.6安装与环境变量设置详细图解
- Ubuntu10.04配置Android环境变量
- 在Qt中为QWidget创建鼠标点击处理