Почему BaseHTTPRequestHandler rfile.read() задерживает выполнение?Python

Программы на Python
Ответить
Anonymous
 Почему BaseHTTPRequestHandler rfile.read() задерживает выполнение?

Сообщение Anonymous »

Я делаю простой сервер на Python, используя пакет http.server. Моя цель — записать данные POST от клиента к серверу. Проблема, с которой я столкнулся, заключается в том, что rfile.read() задерживает выполнение до следующего запроса POST или до отключения соединения.
Однако эта проблема не возникает, если длина содержимого указывается в качестве аргумента в rfile.read().
Ниже показан подкласс BaseHTTPRequestHandler http.server.
class Reqhand(BaseHTTPRequestHandler):

def do_POST(self):
self.send_response(200)
#The lines below don't execute until the next POST req
req = self.rfile.read()
print(req)

Приведенный ниже код выполняется по назначению в одном запросе POST.
class Reqhand(BaseHTTPRequestHandler):

def do_POST(self):
self.send_response(200)
content_len = int(self.headers.get_all('Content-Length')[0])
req = self.rfile.read(content_len)
print(req)


Подробнее здесь: https://stackoverflow.com/questions/792 ... -execution
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»