Form表单请求
来源:互联网 发布:网络搏彩 编辑:程序博客网 时间:2024/05/13 07:00
Form表单请求,一般常用的是Get和Post提交方式,
Get方式提交
表单内容
<form action="user/login.do" method="get" > 用户名:<input type="text" name="username"><br> 密码:<input type="text" name="password"><br> <input type="submit" value="登录"/></form>
Get方式提交,最后以 http://localhost:8080/springmvc/user/login.do?username=zhangsan&password=123456 请求服务器。
Post方式提交
Post提交方式,Form表单有两种enctype类型:
1、enctype="application/x-www-form-urlencoded"
也是默认的提交类型,一般针对文本请求参数,不含附件。比如
<form action="user/login.do" method="post" > 用户名:<input type="text" name="username"><br> 密码:<input type="text" name="password"><br> <input type="submit" value="登录"/></form>
提交表单时的Http请求如下:
POST http://localhost:8080/springmvc/user/login.do HTTP/1.1Host: localhost:8080Connection: keep-aliveContent-Length: 33Cache-Control: max-age=0Origin: http://localhost:8080Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36Content-Type: application/x-www-form-urlencodedAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Referer: http://localhost:8080/springmvc/Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.8username=zhangsan&password=123456
消息头中的
Content-Type: application/x-www-form-urlencoded
消息体中内容以key=value的形式拼接
username=zhangsan&password=123456
2、enctype="multipart/form-data"
需要上传附件时,必须为"multipart/form-data"。,比如
<form action="user/login.do" method="post" enctype="multipart/form-data"> 用户名:<input type="text" name="username"><br> 密码:<input type="text" name="password"><br> 上传文件:<input type="file" name="uploadFile"/><br> <input type="submit" value="登录"/></form>
提交表单时,Http请求协议如下:
POST http://localhost:8080/springmvc/user/login.do HTTP/1.1Host: localhost:8080Connection: keep-aliveContent-Length: 400Cache-Control: max-age=0Origin: http://localhost:8080Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36Content-Type: multipart/form-data; boundary=----WebKitFormBoundarykALcKBgBaI9xA79yAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Referer: http://localhost:8080/springmvc/Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.8------WebKitFormBoundarykALcKBgBaI9xA79yContent-Disposition: form-data; name="username"zhangsan------WebKitFormBoundarykALcKBgBaI9xA79yContent-Disposition: form-data; name="password"123456------WebKitFormBoundarykALcKBgBaI9xA79yContent-Disposition: form-data; name="uploadFile"; filename="file.txt"Content-Type: text/plain文件中的内容 ------WebKitFormBoundarykALcKBgBaI9xA79y--
请求消息头中, Content-Type: multipart/form-data; boundary=----WebKitFormBoundarykALcKBgBaI9xA79y
boundary为分隔符.
消息体中的每个参数都会以“--”+boundary 隔开,最后一个分隔符末尾需要加"--",即"--"+boundary+"--"
模拟Form表单请求
在了解了表单请求时组装的Http协议后,我们就按照http协议,模拟出表单请求了。比如使用HttpUrlConnection上传文件,当然很多Http框架已经帮我们实现了文件上传,比如
Okhttp、HttpClient等。
如何使用HttpUrlConnection实现文件上传,可以参考我的另一篇文章如何使用 HttpURLConnection上传文件
0 0
- Form表单请求
- js 提交form表单 和 设置form 表单请求路径
- jetty请求form表单太大解决
- jetty请求form表单太大解决
- jetty8请求form表单太大解决
- form表单post请求发送及回收
- Http 模拟form表单提交Post请求
- PHP select筛选提交form表单请求
- Form表单提交,Ajax请求,$http请求的区别
- FORM表单请求和AJAX请求使用和适用场景
- Form 表单实现多个Action 请求,将表单数据提交到不同请求
- java 请求乱码问题,两个form表单提交
- http Form表单的Get和 Post请求深入分析
- Javascript实现HTML表单form多个HttpPost请求
- form表单提交get请求,后台接收乱码的解决方案
- form表单中的get和post提交请求的区别
- jQuery ajax 请求 和 Submit 提交 form 表单
- java 发送http请求(提交form表单)
- CAS单点登录客户端--C++版
- sqlserver2008导出表数据和表结构sql文件
- runtime从入门到精通(九)—— 万能界面跳转
- 自定义控件三部曲之绘图篇(九)——Paint之setColorFilter
- #Day5 C++
- Form表单请求
- LCD的一些基础知识
- 常用的BCB 函数
- smb通过文件管理器输入url链接出错
- dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算
- BaseAdapter的封装
- wxPython绘图
- *浙大PAT甲级 1108
- vue.js的一个简单实例