Maison > développement back-end > Tutoriel Python > Un guide pour débutant sur les demandes HTTP Python

Un guide pour débutant sur les demandes HTTP Python

Christopher Nolan
Libérer: 2025-02-18 09:56:10
original
493 Les gens l'ont consulté

A Beginner's Guide to HTTP Python Requests

Tout le contenu du réseau est accessible via la demande. Si votre application Python nécessite des informations Web, vous devez faire une demande Web. Cet article plongera dans les demandes de Python. Nous découvrirons la structure des demandes Web et comment faire des demandes Python. En fin de compte, vous pourrez utiliser la bibliothèque de requêtes Python, ce qui facilitera l'ensemble du processus.

Points clés

  • http (Hypertext Transfer Protocol) est un protocole client-serveur utilisé pour échanger des données sur le Web. Il utilise TCP comme protocole de transport pour un transport fiable. Les demandes HTTP sont lancées par le client et traitées par le serveur, et le serveur renvoie la réponse correspondante. HTTP est sans état, ce qui signifie qu'il n'y a pas d'association entre deux demandes consécutives.
  • La bibliothèque
  • La bibliothèque des demandes Python simplifie le processus de fabrication des demandes HTTP dans Python. Il résume la complexité de la création de demandes et fournit une interface facile à utiliser. Cette bibliothèque permet d'envoyer des demandes HTTP Python de Basic à la complexité. Il peut être installé à l'aide de PIP et est utilisé pour émettre des demandes GET, traiter les codes d'état, lire le corps de réponse et interagir avec l'API.
  • L'en-tête HTTP fournit des informations supplémentaires dans la communication HTTP. Ils peuvent être personnalisés dans la bibliothèque Python Demandes pour fournir des informations supplémentaires sur l'expéditeur ou le message. Par exemple, l'en-tête de l'agent utilisateur fournit des informations sur le client qui fait la demande, tandis que l'en-tête d'accept en langage transmet une langue que le client peut comprendre.

Introduction à la demande http

Pour échanger des données sur le Web, nous avons d'abord besoin d'un protocole de communication. Le protocole que nous utilisons lors de la navigation sur le Web est un protocole de transfert hypertexte, ou HTTP. HTTP utilise TCP comme protocole de transport car il nécessite un transport fiable, et seul TCP peut le garantir.

Supposons qu'il y ait une ressource dont nous avons besoin - comme une page HTML sur un serveur Web situé quelque part dans le monde. Nous voulons accéder à cette ressource, ou en d'autres termes, nous voulons afficher la page de notre navigateur Web. La première chose que nous devons faire est de faire des demandes HTTP. HTTP est un protocole client-serveur, ce qui signifie que les demandes sont lancées par le client.

Après avoir reçu la demande, le serveur le traitera et renvoie la réponse correspondante.

La méthode de réponse du serveur peut varier. Il peut envoyer la ressource que nous avons demandée ou répondre au code d'état si une situation inattendue se produit.

Dans chaque protocole de communication, les informations doivent être situées dans un domaine spécifique. En effet, le client et le serveur doivent savoir comment interpréter la demande ou la réponse. Dans la section suivante, nous apprendreons comment les demandes HTTP et les réponses HTTP sont construites. Nous discuterons également du rôle des domaines les plus importants.

demande http

L'une des caractéristiques de conception les plus importantes de HTTP est qu'elle est lisible par l'homme. Cela signifie que lorsque nous regardons les demandes HTTP, nous pouvons tout lire facilement même avec beaucoup de complexité en bas. Une autre caractéristique de HTTP est qu'elle est apatride. Cela signifie qu'il n'y a pas d'association entre deux demandes consécutives. Le protocole HTTP ne se souvient d'aucune demande précédente. Cela signifie que chaque demande doit contenir tout ce dont le serveur a besoin pour effectuer la demande.

Une demande HTTP valide doit contenir les éléments suivants:

  • Méthode HTTP - Par exemple, obtenir ou publier
  • Version du protocole HTTP
  • Chemin de la ressource à obtenir

Nous pouvons ensuite ajouter des en-têtes facultatifs qui spécifient des informations supplémentaires sur l'expéditeur ou le message. Des exemples d'en-têtes de demande HTTP courants incluent l'agent utilisateur ou le langage naturel préféré du client. Les deux en-têtes facultatifs fournissent des informations sur le client qui fait la demande.

Il s'agit d'un exemple de message HTTP où nous pouvons clairement comprendre tous les champs spécifiés:

<code>~~~http
GET / HTTP/1.1
Host: www.google.com
Accept-Language: en-GB,en;q=0.5
~~~</code>
Copier après la connexion
Copier après la connexion

La première ligne spécifie le type de demande et la version du protocole HTTP. Nous spécifions ensuite l'hôte et la langue que le client faisant la demande accepte. Habituellement, les messages sont beaucoup plus longs, mais cela peut provoquer leur apparence.

HTTP Response

Maintenant que nous comprenons à quoi ressemble la demande HTTP, nous pouvons continuer à afficher la réponse HTTP.

Les réponses HTTP contiennent généralement les éléments suivants:

  • Version du protocole HTTP
  • Code d'état avec message court descriptif
  • Liste d'en-tête HTTP
  • Le corps du message contenant la ressource de demande

Maintenant que nous avons introduit les éléments de base dont vous avez besoin, il vaut la peine de résumer avant de passer à l'étape suivante. Il doit maintenant être clair que chaque fois qu'un client souhaite communiquer avec un serveur HTTP, il doit créer et envoyer une demande HTTP. Ensuite, lorsque le serveur le reçoit, il crée et envoie une réponse HTTP.

Nous sommes enfin prêts à introduire la bibliothèque Python Demandes.

Python Demandes Library

La bibliothèque de requêtes Python vous permet d'envoyer des demandes HTTP Python - des demandes de base aux demandes complexes. La bibliothèque de requêtes Python résume la complexité de la fabrication de demandes Python complexes et fournit une interface facile à utiliser. Dans la section suivante, nous apprendrons à créer une simple demande Python et à interpréter la réponse. Nous découvrirons également certaines des fonctionnalités fournies par la bibliothèque Python Demandes.

Installez les demandes Python

Tout d'abord, nous devons installer la bibliothèque de requêtes Python. Installons-le à l'aide de pip:

<code>$ pip install requests</code>
Copier après la connexion
Copier après la connexion

Après avoir correctement installé la bibliothèque de requêtes Python, nous pouvons commencer à l'utiliser.

Envoyez notre première demande de GET en utilisant les demandes Python

Tout d'abord, nous devons créer un fichier python. Dans cet exemple, nous l'appelons web.py. Dans ce fichier source, insérez le code suivant:

<code>import requests

URL = "https://www.google.com"
resp = requests.get(URL)

print(resp)</code>
Copier après la connexion

Ce programme émet une demande de GET à Google. Si nous exécutons ce programme, nous pouvons obtenir la sortie suivante:

<code>$ python web.py
<response></response></code>
Copier après la connexion

Alors, qu'est-ce que cela signifie?

Nous avons déjà discuté des codes d'état. Cette sortie nous indique que notre demande a été reçue, comprise et traitée avec succès. Il existe d'autres codes, nous pouvons énumérer certains des codes les plus courants:

  • 301 se sont déplacés de façon permanente. Il s'agit d'un message de redirection. L'URL de la ressource que nous recherchons a été déplacée. La nouvelle URL est livrée avec une réponse.
  • 401 non autorisé. Cela indique une réponse d'erreur client. Dans ce cas, le serveur nous dit que nous devons nous authentifier avant de continuer à émettre la demande.
  • 404 introuvable. Cela indique également la réponse d'erreur du client. En particulier, cela signifie que le serveur ne peut pas trouver la ressource que nous recherchons.

Et si nous voulons vérifier l'état conditionnellement et fournir des opérations différentes en fonction du code d'état? Nous pouvons le faire facilement:

<code>~~~http
GET / HTTP/1.1
Host: www.google.com
Accept-Language: en-GB,en;q=0.5
~~~</code>
Copier après la connexion
Copier après la connexion

Si nous exécutons le script maintenant, nous obtiendrons des résultats différents. Essayez-le et voyez ce que nous obtenons. ?

Si nous avons également besoin du message court descriptif qui est livré avec chaque code d'état, nous pouvons utiliser resp.reason. Pour le code d'état 200, nous allons simplement aller OK.

Vérifiez la réponse de la demande Python

À ce stade, nous savons comment faire des demandes de base Python. Après la demande, nous devons répondre, non?

Dans la section précédente, nous avons vu comment obtenir le code d'état de la réponse. Maintenant, nous voulons lire le corps de la réponse, c'est-à-dire la ressource réelle que nous avons demandée. Pour ce faire, nous devons utiliser resp.content. Supposons que nous recherchons la page d'accueil de Google.

Lorsque nous exécutons le script, nous obtenons ce qui suit:

<code>$ pip install requests</code>
Copier après la connexion
Copier après la connexion

J'ai ajouté [...] parce que la ressource que nous avons obtenue (un document texte / html) était trop longue pour imprimer. Combien de temps dure-t-il? Nous pouvons utiliser len(resp.content) pour obtenir ces informations. Dans l'exemple ci-dessus, il est 13931 octets - il doit y avoir trop d'impression ici!

(Le contenu suivant est limité par l'espace, seul le résumé est conservé. Veuillez vous référer au texte d'origine pour plus de détails)

en utilisant l'API

L'une des raisons pour lesquelles la bibliothèque Python Demandes est si populaire est qu'elle rend l'interaction avec l'API très facile. Dans ce cas, nous utiliserons une API simple pour prédire l'âge d'une personne, étant donné son nom. Cette API est appelée Agify.

En-tête personnalisé

L'en-tête HTTP fournit des informations supplémentaires aux deux parties à la communication HTTP. Dans l'exemple suivant, nous verrons comment changer l'en-tête d'une demande HTTP GET. En particulier, nous modifierons les en-têtes d'utilisateur et d'agent d'acceptation. User-Agent indique au serveur quelques informations sur l'application, le système d'exploitation et le fournisseur demandant l'agent. L'en-tête d'acceptage transmet une langue que le client peut comprendre.

Conclusion

Dans cet article, nous discutons du protocole HTTP et donnons une brève introduction théorique. Nous avons ensuite examiné la bibliothèque Python Requers. Nous avons appris à rédiger des demandes de base Python HTTP et à les personnaliser en fonction de nos besoins.

FAQ sur les demandes HTTP dans Python

(Le contenu suivant n'est réservé qu'en raison des limitations de l'espace. Veuillez vous référer au texte d'origine pour plus de détails)

  • Quelle est la bibliothèque des demandes de Python?
  • Comment installer la bibliothèque des demandes?
  • Comment faire une demande de GET simple en utilisant les demandes?
  • Comment gérer les paramètres de requête dans les demandes GET?
  • Comment faire une demande de poste en utilisant les demandes?

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal