模拟提交中multipart/form-data提交需要注意的问题
来源:互联网 发布:hadoop的端口号 编辑:程序博客网 时间:2024/05/17 12:03
其实multipart/form-data上传数据的原理并不复杂,首先通过Content-Type字段指定提交的类型是multipart的,同时指定分隔符。比如:
Content-Type: multipart/form-data; boundary=---------------------------7da2ced220a6a
而在提交的内容中,使用HTTP头中指定的分隔符,也就是前面的---------------------------7da2ced220a6a来进行分割,比如:
-----------------------------7da2ced220a6a
Content-Disposition: form-data; name="ctl00$ContentPlaceHolder1$texName"
testName
-----------------------------7da2ced220a6a
Content-Disposition: form-data; name="__EVENTTARGET"
-----------------------------7da2ced220a6a
Content-Disposition: form-data; name="__EVENTARGUMENT"
-----------------------------7da2ced220a6a
Content-Disposition: form-data; name="__LASTFOCUS"
-----------------------------7da2ced220a6a
Content-Disposition: form-data; name="__VIEWSTATE"
/wEPDwULLTE2ODIxMDQ5OTEPZBYCZg9kFgICAw8WAh4HZW5jdHlwZQUTbXVsdGlwYXJ0L2Zvcm0tZGF0YRYGZg9kFgJmDxYCHgdWaXNpYmxlaGQCAQ9kFg5mDxYCHgRocmVmBTMvVXNlck1hbmFnZS9Vc2VyQ29uc3VtZV9NeVVzZXJNYW5hZ2VMaXN0LmFzcHg/Z3A9LTFkAgEPFgIfAgUkL1VzZXJNYW5hZ2UvVXNlckV4Y2hhbmdlX0NvdXBvbi5hc3B4ZAICDxYCHwIFFS9Vc2VyVG9vbHMvSW5kZXguYXNweGQCAw8WAh8CBR8vVXNlck1hbmFnZS9Qcm9kdWN0c19JbmRleC5hc3B4ZAIEDxYCHwIFFS9FU2FsZXMvU2VsbENhcmQuYXNweGQCBQ8WAh8CBRovU2VydmljZS9NYXN0ZXJPbmxpbmUuYXNweGQCBg8WAh8CBRIvTmV0QmFyL0luZGV4LmFzcHhkAgIPZBYGAgcPZBYCZg9kFgQCAQ8PFgIeBFRleHQFEjM2MDQyNTE5OTUwMzIzMTAzMGRkAgMPDxYCHwMFGTxmb250IGNvbG9yPSdyZWQnPjwvZm9udD5kZAIPD2QWAmYPZBYEAgMPD2QWAh4Hb25jbGljawXTAWlmICh0eXBlb2YoUGFnZV9DbGllbnRWYWxpZGF0ZSkgPT0gJ2Z1bmN0aW9uJykgeyBpZiAoUGFnZV9DbGllbnRWYWxpZGF0ZSgpID09IGZhbHNlKSB7IHJldHVybiBmYWxzZTsgfX07dGhpcy52YWx1ZSA9ICflj5HpgIHkuK0uLi4nO3RoaXMuZGlzYWJsZWQgPSB0cnVlO19fZG9Qb3N0QmFjaygnY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRidG5fVmFsaWRhdGUnLCcnKTtkAgcPFgIfAwVn6aqM6K+B56CB5bey5Y+R6YCB5Yiw5omL5py677yM5aaC5p6cMeWIhumSn+WGheaCqOayoeacieaUtuWIsOmqjOivgeegge+8jOivt+eCueWHu+aMiemSrumHjeaWsOmihuWPluOAgmQCEw8PFgIeB0VuYWJsZWRoZGRk
-----------------------------7da2ced220a6a--
但是我们仔细看就会有意思了,首先在提交数据中的分隔符很容易被搞错。我们在提交数据中看到的“-----------------------------7da2ced220a6a”比HTTP头中指定的“---------------------------7da2ced220a6a”实际上要多出两个“-”。提交数据中的最后一个分隔符变成了“-----------------------------7da2ced220a6a--”。原来提交数据实际上的格式是这样的:
假设HTTP头中我们指定的分割付是
/r/n--
这里的<数据>就表示提交的表单数据,比如前面的:
Content-Disposition: form-data; name="ctl00$ContentPlaceHolder1$texName"
testName
因此在写模拟提交程序的时候一定不要忘了,HTTP头中指定的分隔符,比你在提交数据中看到的分隔符应该是要少一个“--”的。否则提交数据就不会被正常获取。
- 模拟提交中multipart/form-data提交需要注意的问题
- 模拟提交中multipart/form-data提交需要注意的问题
- HttpClient:模拟表单提交文件,发送multipart/form-data数据
- Ajax 提交 form ENCTYPE="multipart/form-data" 的方法
- C#模拟提交表单 post-带附件的表单[multipart/form-data]
- C#模拟提交表单 post-带附件的表单[multipart/form-data]
- springMvc 完美解决 multipart/form-data 方式提交请求 在 Filter 中 ServletRequest.getParameter方法 获取不到参数的问题
- springMvc 完美解决 multipart/form-data 方式提交请求 在 Filter 中 ServletRequest.getParameter方法 获取不到参数的问题
- springMvc 完美解决 multipart/form-data 方式提交请求 在 Filter 中 ServletRequest.getParameter方法 获取不到参数的问题
- 解决multipart/form-data表单中传递参数问题(动态更改表单提交URL)
- java中multipart/form-data方式提交表单添加验证问题
- Android: 实现一个multipart/form-data内容类型的提交
- 提交multipart/form-data类型数据
- 表单提交 enctype="multipart/form-data"的时候 request.getparameter取值为空的问题
- 在form里提交文件的时候一定要写 enctype="multipart/form-data"
- C#中HttpWebRequest用Post提交Content-Type: multipart/form-data; boundary=
- C#中HttpWebRequest用Post提交Content-Type: multipart/form-data; boundary=
- C#中HttpWebRequest用Post提交Content-Type: multipart/form-data;
- 一个新产品经理眼中的产品策划
- esed
- 祝好!
- 第六次个人赛C题 Count the string vector/KMP next数组
- 第六次个人赛D题 Fibonacci Numbers 递归+公式
- 模拟提交中multipart/form-data提交需要注意的问题
- 3 major fashion trend of the United States out of
- 集训终点
- Win7/2008 Server 创建扩展分区
- ubuntu 安装图形界面
- 这是个什么东东啊?
- 解决当刷新页面,按钮控件保留的状态的问题(asp.net)
- Oracle使用技巧及PL/SQL Developer配置
- Java JDBC 操作学习【转帖】