Класс HttpResponse
HTTP-ответ, который возвращает заголовки и данные с сервера клиенту в ответ на HTTP-запрос.
Каждый объект HttpRequest предоставляет доступ к связанному объекту HttpResponse через свойство response. Сервер отправляет ответ клиенту, записывая данные в объект HttpResponse.
Запись ответа
Этот класс реализует IOSink. После настройки заголовка для записи тела HTTP-ответа можно использовать методы IOSink, такие как writeln(). Используйте метод close(), чтобы закрыть ответ и отправить его клиенту.
server.listen((HttpRequest request) {
request.response.write('Hello, world!');
request.response.close();
}); При первом использовании одного из методов IOSink отправляется заголовок запроса. Вызов любых методов, изменяющих заголовок после его отправки, приводит к исключению.
Настройка заголовков
Объект HttpResponse имеет ряд свойств для настройки HTTP-заголовков ответа. При записи строковых данных через IOSink используемая кодировка определяется параметром "charset" заголовка "Content-Type".
HttpResponse response = ...
response.headers.contentType
= ContentType("application", "json", charset: "utf-8");
response.write(...); // Strings written will be UTF-8 encoded. Если кодировка не указана, будет использоваться значение по умолчанию ISO-8859-1 (Latin 1).
HttpResponse response = ... response.headers.add(HttpHeaders.contentTypeHeader, "text/plain"); response.write(...); // Strings written will be ISO-8859-1 encoded.
Если задан неподдерживаемый тип содержимого, при использовании метода write() будет выброшено исключение.
- Реализуемые типы
Конструкторы
- HttpResponse()
Свойства
- bufferOutput ↔ bool чтение / запись
- Возвращает или задаёт, должен ли объект HttpResponse буферизовать вывод.
- connectionInfo → HttpConnectionInfo? только для чтения
- Возвращает информацию о соединении с клиентом. Возвращает
null, если сокет недоступен. - contentLength ↔ int чтение / запись
- Возвращает и задаёт длину содержимого ответа. Если размер ответа заранее неизвестен, задайте длину содержимого равной -1. Это также значение по умолчанию, если длина не задана.
- Файлы cookie, которые нужно установить у клиента (в заголовке 'set-cookie').
- deadline ↔ Duration? чтение / запись
- Задаёт и возвращает крайний срок для ответа. Отсчёт времени начинается с момента его задания. Новый крайний срок заменяет любой предыдущий. По истечении крайнего срока ответ закрывается, а все последующие данные игнорируются.
- done → Future только для чтения, унаследовано
- Объект future, который завершится, когда потребитель закроется или произойдёт ошибка.
- encoding ↔ Encoding чтение / запись, унаследовано
- Кодировка, используемая при записи строк.
- hashCode → int только для чтения, унаследовано
- Хеш-код этого объекта.
- headers → HttpHeaders только для чтения
- Возвращает заголовки ответа.
- persistentConnection ↔ bool чтение / запись
- Возвращает и задаёт состояние постоянного соединения. Начальное значение этого свойства соответствует состоянию постоянного соединения запроса.
- reasonPhrase ↔ String чтение / запись
- Фраза причины ответа.
- runtimeType → Type только для чтения, унаследовано
- Представление типа объекта во время выполнения.
- statusCode ↔ int чтение / запись
- Код состояния ответа.
Методы
- add(
List< int> data) → void унаследовано - Добавляет байты
dataцелевому потребителю, игнорируя кодировку. - addError(
Object error, [StackTrace? stackTrace]) → void унаследовано - Передаёт ошибку целевому потребителю как событие ошибки.
- addStream(
Stream< List< int>> stream) → Future унаследовано - Добавляет все элементы указанного
stream. - close(
) → Future унаследовано - Закрывает целевого потребителя.
- detachSocket(
{bool writeHeaders = true}) → Future< Socket> - Отсоединяет базовый сокет от HTTP-сервера. После отсоединения сокета HTTP-сервер больше не будет выполнять над ним никаких операций.
- flush(
) → Future унаследовано - Возвращает Future, который завершается, когда все буферизованные данные приняты базовым объектом StreamConsumer.
- noSuchMethod(
Invocation invocation) → dynamic унаследовано - Вызывается при обращении к несуществующему методу или свойству.
- redirect(
Uri location, {int status = HttpStatus.movedTemporarily}) → Future - Отправляет ответ с перенаправлением на
location. - toString(
) → String унаследовано - Строковое представление этого объекта.
- write(
Object? object) → void унаследовано - Преобразует
objectв строку, вызывая Object.toString, и добавляет кодировку результата целевому потребителю с помощью add. - writeAll(
Iterable objects, [String separator = ""]) → void унаследовано - Перебирает указанный
objectsи последовательно записывает их с помощью write. - writeCharCode(
int charCode) → void унаследовано - Записывает символ с кодом
charCode. - writeln(
[Object? object = ""]) → void унаследовано - Преобразует
objectв строку, вызывая Object.toString, и записывает результат вthis, добавляя в конце символ новой строки.
Операторы
- operator ==(
Object other) → bool унаследовано - Оператор равенства.
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-io/HttpResponse-class.html