Я пытаюсь запустить python CGI-сервер. В папке cgi-bin на сервере есть файл test.cgi. Я отправляю на этот сервер запрос curl и ожидаю, что заголовок запроса будет напечатан в CGI. Я видел несколько страниц stackoverflow, предлагающих использовать переменные os.environ для получения информации заголовка. Однако я не получаю заголовки запросов из значений окружения.
Я запускаю python CGI-сервер, используя следующий код:
from http.server import HTTPServer, CGIHTTPRequestHandler
server = HTTPServer
handler = CGIHTTPRequestHandler
server_address("", 8080)
handler.cgi_directories = ["/cgi-bin"]
httpd = server(server_address, handler)
httpd.serve_forever
У меня есть сценарий test.cgi в папке cgi-bin. Test.cgi имеет следующий код:
import os
import cgi
print "content type: text/html"
for headername, headervalue in os.environ.iteritems():
print "<p> {0} = {1} </p>".format(headername,headervalue) <--- This prints Content-length header but not someheader
образец запроса curl curl -i -X GET "http:127.0.0.1/cgi-bin/test.cgi" -H "someheader: value"