Maison  >  Article  >  développement back-end  >  Explication détaillée de l'apprentissage de Python en utilisant urllib et urllib2 pour accéder à http GET/POST

Explication détaillée de l'apprentissage de Python en utilisant urllib et urllib2 pour accéder à http GET/POST

silencement
silencementavant
2019-11-25 15:45:022376parcourir

Explication détaillée de l'apprentissage de Python en utilisant urllib et urllib2 pour accéder à http GET/POST

Avant-propos

Cet article présente principalement comment Python apprend à accéder à GET/POST de http En utilisant urllib et urllib2, vous pouvez facilement implémenter l'accès http, pas grand-chose. Pour dire ci-dessous, jetons un coup d'œil à l'introduction détaillée.

Explication détaillée de l'exemple

Ce qui suit est un exemple d'implémentation de GET et POST pour http://127.0.0.1/cgi/test

Utilisation d'une requête de la manière habituelle sense string

POST accepte json

Il est recommandé d'étudier le "Tutoriel vidéo Python"

Parmi eux,

la méthode Request d'urllib2 si un seul paramètre est la méthode GET, mais s'il prend deux paramètres, c'est la méthode POST de http et le deuxième paramètre est le contenu de POST.

#!/usr/bin/env python

import urllib
import urllib2
import json

url_base = "http://127.0.0.1/ cgi/test"

#GET
try:
query = {'test':'yes','name':'colin'}
query_string = urllib.urlencode(query)
url = url_base+"?"+query_string
print "GET", url
print "sortie web :"
print urllib2.urlopen(urllib2.Request(url )).read()
sauf exception comme err:
print err

#post
try:
url = url_base
print "POST", url
a = {'k1':123, 'k2' : '456', 'k3' :'test'}
json_s = json.dumps(a)
Entrée POST : "
print json_s
print "sortie web :"
print urllib2.urlopen(urllib2.Request(url, json_s)).read()
sauf exception comme err :
print err

le test est écrit en bash, comme indiqué ci-dessous, où jq est la commande pour traiter json, vous devez le télécharger, bash/sed/awk devrait être le propre du système avec

#!/bin/bash
echo -e 'Content-type:text/plainr'
echo -e 'r'

if [ X "$REQUEST_METHOD" = s/,[ t]*$//;s/"//g;p'
else
echo ${QUERY_STRING} | awk 'BEGIN{RS="&"}1'
fi

Vous pouvez utiliser n'importe quel serveur Web tant qu'il prend en charge CGI. J'utilise ici un serveur Web très léger - boa. Il ne convient peut-être pas aux sites Web d'applications de grande taille, mais il l'est toujours. mieux vaut utiliser CGI pour fournir des API dans les systèmes embarqués. Très utile et très facile à déployer.

Après la construction, testez-le

$ ./test.py

GET http://127.0.0.1/v1/lic/test?test=yes&name=colin
web sortie :
test=yes
name=colin

POST http://127.0.0.1/v1/lic/test
Entrée POST :
{"k3": "test ", "k2": "456", "k1": 123}
sortie web :
k3= test
k2= 456
k1= 123

Résumé

Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article a une certaine valeur de référence pour l'étude ou le travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer. pour votre soutien.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer