J'ai trouvé ce script en ligne:
import httplib, urllib
params = urllib.urlencode({'number': 12524, 'type': 'issue', 'action': 'show'})
headers = {"Content-type": "application/x-www-form-urlencoded",
"Accept": "text/plain"}
conn = httplib.HTTPConnection("bugs.python.org")
conn.request("POST", "", params, headers)
response = conn.getresponse()
print response.status, response.reason
302 Found
data = response.read()
data
'Redirecting to <a href="http://bugs.python.org/issue12524">http://bugs.python.org/issue12524</a>'
conn.close()
Mais je ne comprends pas comment l'utiliser avec PHP ou ce que tout à l'intérieur de la variable params est ou comment l'utiliser. Puis-je s'il vous plaît avoir un peu d'aide pour essayer de faire fonctionner cela?
live http header
addon de Firefox et d'ouvrir votre URL dans Firefox et de voir l'request/response
URL dans l'live http header
addon que vous comprendrez ce queparams and headers
fait votre code.Réponses:
Si vous voulez vraiment gérer avec HTTP en utilisant Python, je recommande fortement Requests: HTTP for Humans . Le quickstart POST adapté à votre question est:
la source
json={'number': 12524...
au lieu dedata=...
Si vous avez besoin que votre script soit portable et que vous préférez ne pas avoir de dépendances tierces, voici comment envoyer une requête POST uniquement en Python 3.
Exemple de sortie:
la source
Vous ne pouvez pas réaliser de requêtes POST en utilisant
urllib
(uniquement pour GET), essayez plutôt d'utiliser lerequests
module, par exemple:Exemple 1.0:
Exemple 1.2:
Exemple 1.3:
la source
Utilisez la
requests
bibliothèque pour GET, POST, PUT ou DELETE en frappant un point de terminaison REST API. Passez l'url du point de terminaison api restanteurl
, la charge utile (dict)data
et l' en -tête / métadonnées dansheaders
la source
headers
le paramètre est incorrect et nous n'avons pas non plus de json ici. Nous devrions utiliserjson.dumps(pauload)
Votre dictionnaire de données contient des noms de champs de saisie de formulaire, il vous suffit de conserver à droite leurs valeurs pour trouver des résultats. vue formulaire En-tête configure le navigateur pour récupérer le type de données que vous déclarez. Avec la bibliothèque de requêtes, il est facile d'envoyer POST:
En savoir plus sur l'objet de demande: https://requests.readthedocs.io/en/master/api/
la source
Si vous ne souhaitez pas utiliser un module que vous devez installer comme
requests
, et que votre cas d'utilisation est très basique, vous pouvez utiliserurllib2
Voir la documentation
urllib2
ici: https://docs.python.org/2/library/urllib2.html .la source