Python请求——带有标题和正文的 POST 请求
HTTP 标头让客户端和服务器通过 HTTP 请求或响应传递附加信息。所有的标题都不区分大小写,标题字段由冒号分隔,明文字符串格式的键值对。
带有标题的请求
请求根本不会根据指定的标头改变其行为。标头只是简单地传递到最终请求中。所有标头值都必须是字符串、 bytestring 或 Unicode。虽然允许,但建议避免传递 Unicode 标头值。我们可以使用我们指定的标头发出请求,并且通过使用 headers 属性,我们可以告诉服务器有关请求的附加信息。
标题可以是Python字典,如 {“标题名称”:“标题值”}
Authentication Header 告诉服务器你是谁。通常,我们可以通过 Authorization 标头发送身份验证凭据以发出经过身份验证的请求。
例子:
Headers = { “Authorization” : ”our_unique_secret_token” }
response = request.post(“https://example.com/get-my-account-detail”, headers=Headers)
请求与身体
POST 请求通过消息体传递数据,Payload 将设置为data参数。 data 参数采用字典、元组列表、字节或类似文件的对象。您需要将在请求正文中发送的数据调整为指定的 URL。
句法:
requests.post(url, data={key: value}, json={key: value}, headers={key:value}, args) *(data, json, headers parameters are optional.)
下面给出了一些有助于更好地理解这个概念的实现。
示例 1:发送带有数据作为负载的请求
Python3
import requests
url = "https://httpbin.org/post"
data = {
"id": 1001,
"name": "geek",
"passion": "coding",
}
response = requests.post(url, data=data)
print("Status Code", response.status_code)
print("JSON Response ", response.json())
Python
import requests
import json
url = "https://httpbin.org/post"
headers = {"Content-Type": "application/json; charset=utf-8"}
data = {
"id": 1001,
"name": "geek",
"passion": "coding",
}
jsonObject = json.dumps(data)
response = requests.post(url, headers=headers, json=jsonObject)
print("Status Code", response.status_code)
print("JSON Response ", response.json())
输出:
示例 2:发送带有 JSON 数据和标头的请求
Python
import requests
import json
url = "https://httpbin.org/post"
headers = {"Content-Type": "application/json; charset=utf-8"}
data = {
"id": 1001,
"name": "geek",
"passion": "coding",
}
jsonObject = json.dumps(data)
response = requests.post(url, headers=headers, json=jsonObject)
print("Status Code", response.status_code)
print("JSON Response ", response.json())
输出: