Je vais le résumer au lieu d'un mémo de méthode de communication en Python
L'exemple de code ressemble à ceci
python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib
#URL de destination
url = "http://test.test"
#obtenir le paramètre
param = [
( "id", 0),
( "param", "dammy"),
]
url += "?{0}".format( urllib.urlencode( param ) )
#Exécution de l'API
result = None
try :
result = urllib.urlopen( url ).read()
except ValueError :
print "L'accès a échoué."
Comme vous pouvez le voir, Envoyer l'URL à l'URL Le paramètre get est défini dans param.
urllib.urlencode( param )
Converti sous la forme de paramètres d'URL avec
http://test.test?id=0¶m=dammy
Il sera converti comme ça.
Au début, je prévoyais d'utiliser des requêtes, Cela n'a pas fonctionné, j'ai donc décidé d'utiliser urllib et urllib2.
Exemple de code
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib
import urllib2
url = "http://test.test"
params = {"id":0, "param" : "dammy" }
params = urllib.urlencode(params)
req = urllib2.Request(url)
#Paramètre d'en-tête
req.add_header('test', 'application/x-www-form-urlencoded')
#réglages des paramètres
req.add_data(params)
res = urllib2.urlopen(req)
r = res.read()
print r
Paramètres
urllib.urlencode( param )
L'endroit pour convertir est le même.
req.add_header('test', 'application/x-www-form-urlencoded')
req.add_data(params)
L'en-tête et les paramètres sont définis dans.
~~ Au fait, si vous le faites avec des requêtes, cela ressemble à ce qui suit. Je l'ai envoyé au serveur web de CakePHP dans mon environnement, Ce n'est pas devenu une communication postérieure. ~~
Comme le soulignent les rumeurs, la communication post-communication est désormais possible. Je vous remercie!
Pour la communication post
r = s.post(url, params=params)
Vous devez le transmettre en partie à deta. J'ai donc modifié la partie ci-dessus comme suit
r = s.post(url, data=params)
Encore une fois, merci de le signaler!
Au fait, dans le cas des params, il semble y avoir communication.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
url = "http://test.test"
s = requests.session()
params = {"id":0, "param" : "dammy" }
r = s.post(url, data=params)
print r.text.encode("utf-8");
C'est plus facile à mettre en œuvre, donc si vous pouvez l'utiliser, celui-ci est meilleur
C'était bon.
Oh, les requêtes doivent être installées, donc si vous souhaitez l'utiliser, utilisez la commande suivante
Se il vous plaît installer.
pip install requests
c'est tout.