Ich werde es anstelle eines Memos der Kommunikationsmethode in Python zusammenfassen
Der Beispielcode sieht so aus
python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib
#Ziel-URL
url = "http://test.test"
#Parameter abrufen
param = [
( "id", 0),
( "param", "dammy"),
]
url += "?{0}".format( urllib.urlencode( param ) )
#API-Ausführung
result = None
try :
result = urllib.urlopen( url ).read()
except ValueError :
print "Zugriff fehlgeschlagen."
Wie du siehst, URL an URL senden Der get-Parameter wird in param gesetzt.
urllib.urlencode( param )
Konvertiert in die Form von URL-Parametern mit
http://test.test?id=0¶m=dammy
Es wird so konvertiert.
Zuerst hatte ich vor, Anfragen zu verwenden, Es hat nicht funktioniert, also habe ich mich für urllib und urllib2 entschieden.
Beispielcode
#!/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)
#Header-Einstellung
req.add_header('test', 'application/x-www-form-urlencoded')
#Parametereinstellungen
req.add_data(params)
res = urllib2.urlopen(req)
r = res.read()
print r
Parameter
urllib.urlencode( param )
Der Ort, an dem man konvertieren kann, ist der gleiche.
req.add_header('test', 'application/x-www-form-urlencoded')
req.add_data(params)
Der Header und die Parameter werden in gesetzt.
~~ Übrigens, wenn Sie es mit Anfragen tun, sieht es wie folgt aus. Ich habe es an den Webserver von CakePHP in meiner Umgebung gesendet. Es wurde keine Postkommunikation. ~~
Wie von Mursts hervorgehoben, ist jetzt eine Post-Kommunikation möglich. Vielen Dank!
Für die Postkommunikation
r = s.post(url, params=params)
Sie müssen es teilweise an deta weitergeben. Also habe ich den obigen Teil wie folgt modifiziert
r = s.post(url, data=params)
Nochmals vielen Dank für den Hinweis!
Übrigens, im Fall von Params scheint es Kommunikation zu bekommen.
#!/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");
Dies ist einfacher zu implementieren. Wenn Sie es also verwenden können, ist dies besser
Es war gut.
Oh, Anforderungen müssen installiert werden. Wenn Sie sie verwenden möchten, verwenden Sie den folgenden Befehl
Bitte installiere.
pip install requests
das ist alles.
Recommended Posts