Ich habe dieses Skript online gefunden:
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()
Aber ich verstehe nicht, wie man es mit PHP benutzt oder was alles in der params-Variablen ist oder wie man es benutzt. Kann ich bitte ein wenig Hilfe bei dem Versuch haben, dies zum Laufen zu bringen?
live http header
Addon zu installieren und dann Ihre URL in Firefox zu öffnen und dierequest/response
URL imlive http header
Addon zu sehen, als Sie verstehen werden, wasparams and headers
in Ihrem Code zu tun ist.Antworten:
Wenn Sie wirklich mit HTTP unter Verwendung von Python umgehen möchten, empfehle ich dringend Anfragen: HTTP für Menschen . Der an Ihre Frage angepasste POST-Schnellstart lautet:
quelle
json={'number': 12524...
anstelle vondata=...
Wenn Sie möchten, dass Ihr Skript portabel ist und Sie keine Abhängigkeiten von Drittanbietern haben möchten, senden Sie die POST-Anforderung auf diese Weise ausschließlich in Python 3.
Beispielausgabe:
quelle
Sie können POST-Anforderungen nicht mit
urllib
(nur für GET) erreichen, sondern versuchen, einrequests
Modul zu verwenden, z.Beispiel 1.0:
Beispiel 1.2:
Beispiel 1.3:
quelle
Verwenden Sie die
requests
Bibliothek, um durch Erreichen eines REST-API-Endpunkts GET, POST, PUT oder DELETE zu erhalten. Übergeben Sie die URL des restlichen API-Endpunktsurl
, Payload (dict)data
und Header / Metadatenheaders
quelle
headers
Parameter ist falsch und wir haben hier auch keinen JSON. Wir sollten verwendenjson.dumps(pauload)
Ihr Datenwörterbuch enthält Namen von Formulareingabefeldern. Sie behalten nur deren Werte bei, um Ergebnisse zu finden. Formularansicht Header konfiguriert den Browser so, dass er den von Ihnen deklarierten Datentyp abruft. Mit der Anforderungsbibliothek ist es einfach, POST zu senden:
Weitere Informationen zum Anforderungsobjekt: https://requests.readthedocs.io/en/master/api/
quelle
Wenn Sie kein Modul verwenden möchten, das Sie wie installieren möchten
requests
, und Ihr Anwendungsfall sehr einfach ist, können Sie es verwendenurllib2
Siehe die Dokumentation
urllib2
hier: https://docs.python.org/2/library/urllib2.html .quelle