Ich versuche, eine super-vereinfachte virtuelle In/Out-Board mit Wx/Python zu erstellen. Ich habe für eine meiner Anfragen an den Server den folgenden Code anstelle, wo ich die Daten werden zu speichern werden:Python URLLib/URLLib2 POST
data = urllib.urlencode({'q': 'Status'})
u = urllib2.urlopen('http://myserver/inout-tracker', data)
for line in u.readlines():
print line
Nichts Besonderes los dort. Das Problem, das ich habe, ist, dass, basierend auf wie ich die Dokumente lese, sollte dies eine Post-Anfrage durchführen, weil ich den Datenparameter bereitgestellt haben, und das ist nicht passiert. Ich habe diesen Code in dem Index für diese URL:
if (!isset($_POST['q'])) { die ('No action specified'); }
echo $_POST['q'];
Und jedes Mal, wenn ich meinen Python App ich den ‚keine Aktion angegeben‘ Text zu meiner Konsole gedruckt bekommen laufen. Ich werde versuchen, es mithilfe der Request Objects zu implementieren, da ich ein paar Demos gesehen habe, die diese enthalten, aber ich frage mich, ob mir jemand erklären kann, warum ich keine Post-Anfrage mit diesem Code erhalte. Vielen Dank!
- EDITED -
Dieser Code funktioniert und Beiträge auf meiner Web-Seite richtig:
data = urllib.urlencode({'q': 'Status'})
h = httplib.HTTPConnection('myserver:8080')
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
h.request('POST', '/inout-tracker/index.php', data, headers)
r = h.getresponse()
print r.read()
Ich bin immer noch nicht sicher, warum die urllib2 Bibliothek Stellen nicht, wenn ich die Datenparameter liefern - zu mir zeigen die Dokumente an, dass es sollte.
Warum verwenden Sie nicht 'urllib2'? –
Ich bin. 'urllib2.urlopen'. Ich verwende nur urllib, um die Postdaten zu codieren. –