Mit der Urlib in Python 3.6 habe ich eine Anfrage erstellt und Header angelegt. Python scheint diese Direktive jedoch vollständig zu ignorieren, und wenn das ErgebnisPython: request.has_header (header) gibt immer false zurück
ist, ist das Ergebnis falsch. Dies gilt auch für andere Header außer "Verbindung". Interessanterweise gibt 'connection' auch false zurück. Ich war nicht in der Lage, eine gute Quelle dafür zu finden, wie man Kopfzeilen in Python genau deklariert, die konsistent funktionieren (und Python ist anscheinend extrem case-sensitive Header-Namen), also wenn jemand irgendwelche Empfehlungen hätte, würde ich mich interessieren, sie zu hören !
Mein Relevant ist:
head = {
'content-type': 'application/x-www-form-urlencoded',
'connection': 'keep-alive',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
}
req = Request(url, post_bytes, head)
print(req.has_header('content-type')
Ersatz ‚content-type‘ für eine der anderen gegeben Header und das Ergebnis ist immer noch falsch. Es ist fast wie die Standard-Python-Anfrage enthält keine Header, aber ... sicherlich wäre das nicht der Fall?
Vielen Dank für einen Einblick!
Das hat funktioniert. Ich hatte nicht erwartet, dass das zweite Wort mit Bindestrich nicht wie das erste Wort großgeschrieben wird. Einige Beispielheader mit Firebug zu betrachten, schlug vor, dass beide Wörter großgeschrieben werden, aber es scheint, dass dies für diese Anwendung nicht der Fall ist. Wissen Sie, ob die Groß-/Kleinschreibung gilt, wenn auch die Header deklariert werden? z.B. wenn ich deklariere head = {'Content-type': ....}? Schätzen Sie die Hilfe! –
Es scheint, dass die Header, die Sie deklarieren, durch das urllib Request-Objekt (nicht Python) in den Titel umgewandelt werden. Ich bin mir nicht sicher, ob es passiert, bevor die Anfrage an das Netzwerk gesendet wird, aber ich glaube nicht, dass es für den Server eine Rolle spielt. –