Maison > Article > développement back-end > Requêtes Python - Requête POST avec en-têtes et corps
La bibliothèque de requêtes de Python est un outil puissant qui peut effectuer des requêtes HTTP de manière simple et efficace. Il fournit une interface facile à utiliser pour envoyer des requêtes GET, POST et d'autres types aux serveurs Web. Lorsque vous effectuez une requête POST, vous incluez généralement des en-têtes et un corps de requête, qui contiennent des informations et des données supplémentaires que le serveur doit traiter.
Dans cet article, nous explorerons comment faire une requête POST avec en-têtes et corps à l'aide de la bibliothèque de requêtes. Nous présenterons les concepts de base des en-têtes et des corps de requête, démontrerons leur utilisation dans la méthode request.post() et discuterons des meilleures pratiques pour gérer les réponses et les erreurs.
Avant de nous lancer dans l'utilisation de la bibliothèque de requêtes en Python pour effectuer une requête POST avec des en-têtes et un corps de requête, assurons-nous que notre environnement est correctement configuré. Voici les étapes à suivre -
Si vous utilisez Python 3 ou supérieur, la bibliothèque de requêtes n'est pas fournie avec la bibliothèque standard, vous devez donc l'installer séparément. Ouvrez un terminal ou une invite de commande et exécutez la commande suivante :
pip install requests
Si vous utilisez un IDE ou un éditeur de code avec un terminal intégré, vous pouvez installer la bibliothèque directement depuis le panneau du terminal au sein de l'éditeur.
Après avoir installé la bibliothèque, assurez-vous d'importer le module de requêtes au début de votre script Python ou dans un environnement Python interactif :
import requests
Une fois la bibliothèque de requêtes installée et importée, vous pouvez désormais effectuer des requêtes POST avec en-têtes et corps de requête.
Dans la section suivante, nous explorerons comment construire les en-têtes et le corps de la requête, puis passerons à la création de la requête POST à l'aide de la méthode request.post().
Pour faire une requête POST avec des en-têtes et un corps de requête, nous devons construire les en-têtes et le corps avant d'envoyer la requête à l'aide de la méthode request.post(). Décomposons le processus étape par étape :
Les en-têtes fournissent des informations supplémentaires sur la demande, telles que les informations d'authentification, le type de contenu ou l'agent utilisateur. Nous pouvons inclure des en-têtes dans les requêtes POST en les passant sous forme de dictionnaire au paramètre headers de la méthode request.post().
Pour construire un en-tête, créez un dictionnaire avec les noms d'en-tête souhaités comme clés et leurs valeurs correspondantes comme valeurs. Voici un exemple -
headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer your_token_here' }
Remplacez "application/json" par le type de contenu approprié à votre demande, et "your_token_here" par votre jeton d'autorisation réel (si nécessaire).
Le corps de la requête contient les données que nous souhaitons envoyer dans le cadre de la requête POST. Il peut se présenter sous différents formats, tels que JSON, données de formulaire ou texte brut. Le choix du format dépend des attentes du serveur.
Pour construire le corps de la requête, créez un dictionnaire ou une structure de données avec les données requises. Voici un exemple utilisant le format JSON -
import json payload = { 'name': 'John Doe', 'email': 'johndoe@example.com' } json_payload = json.dumps(payload)
Dans cet exemple, nous créons une charge utile de dictionnaire en utilisant des exemples de données. Nous utilisons ensuite json.dumps() pour convertir le dictionnaire en une représentation sous forme de chaîne JSON, ce qui est nécessaire pour envoyer les données JSON dans le corps de la requête.
Dans la section suivante, nous rassemblerons les en-têtes construits et le corps de la requête et effectuerons la requête POST réelle à l'aide de la méthode request.post().
Maintenant que nous avons construit les en-têtes et le corps de la requête, nous pouvons procéder à la requête POST proprement dite en utilisant la méthode request.post(). Voici comment procéder :
Commencez par spécifier l'URL à laquelle vous souhaitez envoyer la requête POST. Remplacez "https://api.example.com/endpoint" dans l'extrait ci-dessous par votre URL réelle.
url = 'https://api.example.com/endpoint'
Utilisez la méthode request.post() pour envoyer une requête POST. Transmettez l'URL, les en-têtes et le corps de la demande en tant que paramètres.
import requests response = requests.post(url, headers=headers, data=json_payload)
requests.post() renvoie un objet Response contenant la réponse du serveur à notre requête.
Nous pouvons accéder au code d'état de la réponse, aux en-têtes de réponse et au corps de la réponse à l'aide de diverses propriétés et méthodes de l'objet Response. Voici un exemple :
print(response.status_code) print(response.headers) print(response.text)
Il est important de tenir compte des erreurs potentielles pouvant survenir lors du traitement des demandes. Si la demande a échoué (code d'état >= 400), vous pouvez utiliser Response.raise_for_status() pour déclencher une exception.
response.raise_for_status()
En suivant les étapes ci-dessous, vous pouvez utiliser la bibliothèque de requêtes en Python pour effectuer efficacement une requête POST avec des en-têtes et un corps de requête.
为了演示如何使用请求来发出带有标头和正文的 POST 请求,让我们考虑一个将 JSON 负载发送到 API 端点的示例。这是完整的代码−
import requests import json # Set up the URL url = 'https://api.example.com/endpoint' # Set up the headers headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer your_token' } # Set up the request body payload = { 'name': 'John Doe', 'email': 'johndoe@example.com', 'age': 30 } json_payload = json.dumps(payload) # Make the POST request response = requests.post(url, headers=headers, data=json_payload) # Check the response if response.status_code == 200: print('Request successful!') print(response.json()) else: print('Request failed!') print(response.text)
让我们分解一下代码−
我们导入必要的模块− 请求用于发出 HTTP 请求和 json 用于处理 JSON 数据
我们设置要将 POST 请求发送到的 URL。
我们定义标头,包括指定我们发送 JSON 数据的“Content-Type”标头以及“Authorization”标头(如果 API 需要)。
我们将请求正文设置为 Python 字典,然后使用 json.dumps() 将其转换为 JSON 字符串。
我们使用 requests.post() 发出 POST 请求,并将 URL、标头和请求正文作为参数传递。
我们检查响应状态代码。如果是 200(表示请求成功),我们将打印响应 JSON。否则,我们将打印响应文本以识别任何错误。
此示例演示如何使用 Python 中的请求库发出带有标头和请求正文的 POST 请求。请随意根据您的具体要求自定义代码。
在本文中,我们探讨了如何使用 Python 中的 requests 库发出带有标头和请求正文的 POST 请求。通过安装 requests 库并了解其依赖关系,我们了解了设置环境的重要性。
在本文中,我们探讨了如何使用 Python 中的 requests 库发出带有标头和请求正文的 POST 请求。通过安装 requests 库并了解其依赖关系,我们了解了设置环境的重要性。
然后,我们运行了一个完整的示例,演示了发送 JSON 有效负载作为请求正文并在请求中包含标头的过程。我们逐步浏览了代码并详细讨论了每个组件。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!