Python читать многострочный пост данных

Я использую BaseHTTPRequestHandler для реализации моего http-сервера. Как мне прочитать данные многострочного поста в моем do_PUT/do_POST?

Изменить: я пытаюсь реализовать автономный сценарий, который обслуживает некоторые пользовательские запросы, что-то вроде прослушивателя на сервере, который объединяет / архивирует / извлекает из различных файлов журнала, я не хочу реализовывать то, что требует веб-сервера, я не У меня нет большого опыта работы с Python, я был бы признателен, если бы кто-то мог указать лучшее решение.

Edit2: я не могу использовать какие-либо внешние библиотеки / модули, я должен обойтись с простым vanilla python 2.4/java1.5/perl5.8.8, ограничительные политики, мои руки связаны

1 ответ

Получение тела запроса так же просто, как чтение из self.rfile, но вы должны будете знать, сколько читать, если клиент используетConnection: keep-alive, Примерно так будет работать, если клиент укажетContent-Lengthзаголовок...

from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler

class RequestHandler(BaseHTTPRequestHandler):

    def do_POST(self):
        content_length = int(self.headers['Content-Length'])
        post_data = self.rfile.read(content_length)
        print post_data

server = HTTPServer(('', 8000), RequestHandler)
server.serve_forever()

... хотя это становится более сложным, если клиент отправляет данные, используя кодирование передачи по частям.

Другие вопросы по тегам