Wie kann mein Python-CGI einen bestimmten HTTP-Statuscode wie 403 oder 418 zurückgeben?Python CGI gibt einen HTTP-Statuscode zurück, z. B. 403?
Ich versuchte das offensichtliche (print "Status: 403 Forbidden"), aber es funktioniert nicht.
Wie kann mein Python-CGI einen bestimmten HTTP-Statuscode wie 403 oder 418 zurückgeben?Python CGI gibt einen HTTP-Statuscode zurück, z. B. 403?
Ich versuchte das offensichtliche (print "Status: 403 Forbidden"), aber es funktioniert nicht.
print 'Status: 403 Forbidden'
print
Funktioniert für mich. Sie benötigen jedoch den zweiten Ausdruck, da Sie einen doppelten Zeilenumbruch benötigen, um die HTTP-Antwortheader zu beenden. Andernfalls könnte sich Ihr Webserver beschweren, dass Sie ihm keine vollständigen Header senden.
sys.stdout('Status: 403 Forbidden\r\n\r\n')
kann technisch korrekt sein, gemäß RFC (unter der Annahme, dass Ihr CGI-Skript nicht auf Windows im Textmodus ausgeführt wird). Beide Linienendungen scheinen jedoch überall zu funktionieren.
Ich denke, Sie suchen nach send_error
. Es würde in http.server
in py3k gefunden werden.
Ich benutze Python 2.5. Wird es funktionieren? – cfischer
Ich sehe nicht, warum es nicht sollte. – SilentGhost
Nur wenn Sie jedoch CGIHTTPServer verwenden. – bobince