Maison > Article > développement back-end > Comment utiliser la fonction urllib.request.urlopen() pour envoyer une requête POST en Python 3.x
Comment utiliser la fonction urllib.request.urlopen() pour envoyer une requête POST en Python 3.x
En programmation réseau, il est souvent nécessaire d'envoyer une requête POST via le protocole HTTP pour interagir avec le serveur. Python fournit la fonction urllib.request.urlopen() pour envoyer diverses requêtes HTTP, y compris les requêtes POST. Cet article détaillera comment utiliser la fonction urllib.request.urlopen() pour envoyer une requête POST, avec des exemples de code. La fonction
urllib.request.urlopen() est un module client HTTP de la bibliothèque standard Python, utilisé pour envoyer des requêtes HTTP et recevoir des réponses HTTP. Contrairement aux requêtes GET, les requêtes POST soumettent des données au serveur et s'attendent à ce que le serveur traite les données soumises en conséquence.
Voici les étapes générales pour envoyer une requête POST à l'aide de la fonction urllib.request.urlopen() :
import urllib.request
data = { 'key1': 'value1', 'key2': 'value2' }
import urllib.parse url = 'http://example.com/post' data = { 'key1': 'value1', 'key2': 'value2' } data = urllib.parse.urlencode(data).encode() req = urllib.request.Request(url, data=data, method='POST')
response = urllib.request.urlopen(req) result = response.read().decode() print(result)
Dans les étapes ci-dessus, url est l'URL cible pour envoyer la demande et data est les données POST à soumettre. Lors de la création de l'objet de requête, la fonction urlencode() est utilisée pour convertir les données en une chaîne codée en URL, et la méthode encode() est utilisée pour les encoder dans un flux d'octets.
Enfin, utilisez la fonction urlopen() pour envoyer la requête et lire le contenu de la réponse via la méthode read(). Utilisez la méthode decode() pour décoder le contenu de la réponse et imprimer le résultat.
Il convient de noter que les requêtes POST peuvent contenir des informations d'en-tête de requête HTTP supplémentaires. Ces en-têtes de requête supplémentaires peuvent être définis lors de la création de l'objet de requête en ajoutant le paramètre headers.
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.3', 'Content-Type': 'application/x-www-form-urlencoded' } req = urllib.request.Request(url, data=data, headers=headers, method='POST')
Dans l'exemple de code ci-dessus, les deux en-têtes de requête User-Agent et Content-Type sont définis via le paramètre headers.
Résumé
Cet article explique comment utiliser la fonction urllib.request.urlopen() de Python pour envoyer une requête POST. Importez d'abord le module urllib.request, puis créez un objet de requête avec l'URL et les données POST, et enfin utilisez la fonction urlopen() pour envoyer la requête et obtenir la réponse. En ajoutant le paramètre headers, vous pouvez également définir des informations d'en-tête de requête supplémentaires.
Ce qui précède est un exemple simple d'envoi d'une requête POST à l'aide de la fonction urllib.request.urlopen(). J'espère que cela pourra vous aider à comprendre comment envoyer des requêtes POST en Python et les appliquer dans des projets réels.
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!