Атрибут chunked
Атрибут chunked применяется к объекту запроса
request и возвращает булево значение. Если клиент
передаёт тело запроса с использованием блочного
кодирования Transfer-Encoding: chunked, атрибут
равен True. В остальных случаях возвращается
False. Атрибут не принимает параметров и доступен
только для чтения.
Синтаксис
request.chunked
Пример
Давайте выведем значение атрибута chunked для
обычного GET-запроса:
from bottle import Bottle, request
app = Bottle()
@app.route('/')
def index():
return str(request.chunked)
Результат выполнения кода для обычного запроса:
"False"
Пример
Давайте проверим атрибут chunked в обработчике
POST-запроса:
from bottle import Bottle, request
app = Bottle()
@app.route('/', method='POST')
def index():
if request.chunked:
return 'chunked transfer'
return 'regular transfer'
Результат выполнения кода при блочной передаче:
"chunked transfer"
Пример
Давайте используем атрибут chunked вместе с
атрибутом content_length, чтобы выбрать способ
чтения тела запроса:
from bottle import Bottle, request
app = Bottle()
@app.route('/', method='POST')
def index():
if request.chunked:
data = request.body.read()
return 'read by chunks: ' + str(len(data))
return 'content length: ' + str(request.content_length)
Результат выполнения кода для запроса с известной длиной:
"content length: 5"
Смотрите также
-
класс
Request,
который представляет HTTP-запрос -
атрибут
content_length,
который хранит длину тела запроса -
атрибут
content_type,
который хранит тип содержимого запроса -
атрибут
body,
который даёт доступ к телу запроса