Python Requests.post() 方法用于将 HTTP POST 请求发送到指定的 URL。它允许将数据发送到通常用于提交表单或上传文件的服务器。
此方法接受 'url'、'data'、'json'、'headers'、'cookies'、'files' 和 'timeout' 等参数。使用 'data' 或 'json' ,它分别发送表单数据或 JSON 有效负载,其中 'headers' 可用于发送自定义 HTTP 标头,'files' 可用于上传文件。
它通过促进与 Web 服务的交互,返回一个包含状态代码、标头和内容等详细信息的响应对象。
语法
以下是 Python Requests.post() 方法的语法和参数 -
requests.post(url, data=None, json=None, headers=None, params=None, auth=None, timeout=None, verify=None)
参数
以下是 Python 请求 post() 方法的参数 -
- url:请求发送到的 URL。
- data:请求的正文。这可以是字典、字节或要在请求正文中发送的类文件对象。
- JSON:要在请求正文中发送的 JSON 数据。
- headers:与请求一起发送的 HTTP 标头。
- files:要与请求一起上传的文件。
- auth:Auth 元组,用于启用 Basic/Digest/Custom HTTP Auth 或自定义身份验证可调用对象。
- cookies:与请求一起发送的 Cookie。
- timeout:请求的超时。
- allow_redirects:确定是否应遵循重定向。
- proxies:将协议映射到代理 URL 的字典。
- verify:控制是否启用 SSL 证书验证。
返回值
此方法返回 Response 对象。
示例 1
以下是使用 python Requests.post() 方法将包含表单数据的简单 POST 请求发送到指定 URL 的基本示例 -
import requests
# Define the URL
url = 'https://httpbin.org/post'
# Define the data to be sent in the request body
data = {'key1': 'value1', 'key2': 'value2'}
# Send the POST request with the data
response = requests.post(url, data=data)
# Print the response status code
print('Status Code:', response.status_code)
# Print the response content
print('Response Content:', response.text)
输出
Status Code: 200
Response Content: {
"args": {},
-------------
------------
------------
"json": null,
"origin": "110.226.149.205",
"url": "https://httpbin.org/post"
}
Response Content: {
"args": {},
-------------
------------
------------
"json": null,
"origin": "110.226.149.205",
"url": "https://httpbin.org/post"
}
示例 2
服务器将收到包含提供的 JSON 数据的 POST 请求,并打印来自服务器的响应,包括状态代码和任何响应内容。这是它的示例 -
import requests
# Define the URL
url = 'https://httpbin.org/post'
# Define the JSON data to be sent in the request body
json_data = {'key1': 'value1', 'key2': 'value2'}
# Send the POST request with the JSON data
response = requests.post(url, json=json_data)
# Print the response status code
print('Status Code:', response.status_code)
# Print the response content
print('Response Content:', response.text)
输出
Status Code: 200
Response Content: {
"args": {},
"data": "{\"key1\": \"value1\", \"key2\": \"value2\"}",
-------------
------------
------------
"json": {
"key1": "value1",
"key2": "value2"
},
"origin": "110.226.149.205",
"url": "https://httpbin.org/post"
}
Response Content: {
"args": {},
"data": "{\"key1\": \"value1\", \"key2\": \"value2\"}",
-------------
------------
------------
"json": {
"key1": "value1",
"key2": "value2"
},
"origin": "110.226.149.205",
"url": "https://httpbin.org/post"
}
示例 3
以下是使用 Python 中 requests 模块 post() 方法的超时 POST 请求示例 -
import requests
# Define the URL
url = 'https://httpbin.org/post'
# Define the JSON data to be sent in the request body
json_data = {'key1': 'value1', 'key2': 'value2'}
# Set the timeout for the request (in seconds)
timeout = 5
try:
# Send the POST request with the JSON data and timeout
response = requests.post(url, json=json_data, timeout=timeout)
# Print the response status code
print('Status Code:', response.status_code)
# Print the response content
print('Response Content:', response.text)
except requests.Timeout:
# Handle timeout error
print('Timeout Error: Request timed out.')
except requests.RequestException as e:
# Handle other request exceptions
print('Request Exception:', e)
输出
Status Code: 200
Response Content: {
"args": {},
"data": "{\"key1\": \"value1\", \"key2\": \"value2\"}",
-------------
------------
------------
},
"origin": "110.226.149.205",
"url": "https://httpbin.org/post"
}
Response Content: {
"args": {},
"data": "{\"key1\": \"value1\", \"key2\": \"value2\"}",
-------------
------------
------------
},
"origin": "110.226.149.205",
"url": "https://httpbin.org/post"
}