post请求编码方式介绍
在机场赶制,可能比较匆忙,需要以后再改一下
post请求编码方式介绍
HTTP 请求以ascii码进行传输,一个http请求至少包含以下部分:
1 | 状态、请求头、消息主体 |
状态看起来应该是这样的:
1 | POST http://127.0.0.1:5000/ HTTP/1.1 |
请求头是这样的:
1 | Origin: chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop |
消息主体里面的内容可以分成三种情况:
- x-www-form-urlencoded
- form-data
- raw
(按照postman的形式分类)
一个http请求的结构如下:
1 | <状态> |
比如像这样:[^1]
1 | POST / HTTP/1.1 |
你可以在telnet中直接使用这种格式来发送http请求
telnet发送http请求的例子(Linux)
1 | $ telnet |
最后一行是自己输入的。
如果发post请求,那就是用之前的代码取代最后一行的GET / HTTP/1.1
更好的方式获得更多的http参数是在浏览器中打开控制台network中对请求头进行复制。
application/x-www-form-urlencoded
我们可以直接使用html的网页来发送这种类型的消息主体:
1 | <form method='post' action='http://127.0.0.1:5000/' enctype=""> |
这个网页提交的http请求消息主体将是看起来像这样:
1 | post_key1=post_value1&post_key2=post_value2&%E9%94%AE3=%E5%80%BC2 |
值得一提的是这样没有办法发出文件。如果请求中有文件数据,会当成字符串,直接只处理文件名。如果需要发出文件的话,就需要下面的这种方法。
multipart/form-data
要发出这种形式的post请求,我们必须让