[Python Web]常见的 POST 提交数据的方式
2023-02-18 16:46:50 时间
本文参考整理于:https://imququ.com/post/four-ways-to-post-data-in-http.html
简介
这里介绍了,用 POST 方法提交数据时,常见的三种方式:
- application/x-www-form-urlencoded
- multipart/form-data
- application/json
application/x-www-form-urlencoded(默认)
<form>
默认是以 application/x-www-form-urlencoded
方式提交数据,请求示例如下:
POST http://www.example.com HTTP/1.1
Content-Type: application/x-www-form-urlencoded;charset=utf-8
title=test&sub%5B%5D=1&sub%5B%5D=2&sub%5B%5D=3
multipart/form-data(上传文件)
使用表单 上传文件 时,必须指明 <form>
表单的 enctype
的值为 multipart/form-data
。
这种方式,首先生成了一个 boundary 用于分割不同的字段,然后 Content-Type
里指明了数据是以 multipart/form-data
来编码。最后,消息主体里按照字段个数又分为多个结构类似的部分,每部分都是以 --boundary
开始,紧接着是内容描述信息,然后是回车,最后是字段具体内容(文本或二进制),请求示例如下:
POST http://www.example.com HTTP/1.1
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryrGKCBY7qhFd3TrwA
------WebKitFormBoundaryrGKCBY7qhFd3TrwA
Content-Disposition: form-data; name="text"
title
------WebKitFormBoundaryrGKCBY7qhFd3TrwA
Content-Disposition: form-data; name="file"; filename="chrome.png"
Content-Type: image/png
PNG ... content of chrome.png ...
------WebKitFormBoundaryrGKCBY7qhFd3TrwA--
application/json(JSON)
这种方案,可以方便的提交复杂的结构化数据,特别适合 RESTful
的接口,此类接口可以通用在客户端和网页端。
把响应头的 Content-Type
设置为 application/json
,用来告诉服务端消息主体是序列化后的 JSON
字符串,请求示例如下:
POST http://www.example.com HTTP/1.1
Content-Type: application/json;charset=utf-8
{"title":"test","sub":[1,2,3]}
参考
相关文章
- [python]使用virtualenvWrapper
- [python]初探socket
- [python]新手写爬虫v2.5(使用代理的异步爬虫)
- [python]爬代理ip v2.0(未完待续)
- [python]抽象方法
- [pyhton]python内建方法
- [python]非常小的下载图片脚本(非通用)
- [python]decimal常用操作和需要注意的地方
- [python实用代码片段]python获取当前时间的前一天,前一周,前一个月
- 5 分钟,教你用 Python 制作一个生日提醒!
- 今年十八,蓝桥速刷(Python-I)
- 使用python-jenkins管理Jenkins
- python爬百度翻译demo
- python将获取到的数据保存到文本
- python:使用xpath获取想要的数据
- 接口测试第2讲:Python测试框架——unittest
- 接口测试第3讲:Python测试框架——pytest
- [python]pythonic的字典常用操作
- pip install mysql-connector-python失败
- [python]自问自答:python -m参数?