Python CGI retornando um código de status HTTP, como 403?
-
05-07-2019 - |
Pergunta
Como pode o meu python cgi retornar um código de status específico http, como 403 ou 418?
Eu tentei o óbvio (print "Status: 403 Proibido"). Mas ele não funciona
Solução
print 'Status: 403 Forbidden'
print
Funciona para mim. Você precisa fazer a segunda impressão, porém, como você precisa de um double-nova linha para acabar com os cabeçalhos de resposta HTTP. Caso contrário, o servidor web pode queixar-se você não está enviando-lhe um conjunto completo de cabeçalhos.
sys.stdout('Status: 403 Forbidden\r\n\r\n')
pode ser tecnicamente mais correto, de acordo com RFC (assumindo que o seu script CGI não está em execução no modo de texto no Windows). No entanto ambos os finais de linha parecem funcionar em todos os lugares.
Outras dicas
Eu acho que, você está procurando send_error
. Seria localizado na http.server
em Py3k.