Spec-Zone.ru › Dart 2

dart:io

Класс HttpRequest

Объект серверной стороны, содержащий содержимое и информацию об HTTP-запросе.

Объекты HttpRequest генерируются объектом HttpServer, который прослушивает HTTP-запросы на определённом хосте и порту. Для каждого полученного запроса HttpServer, который является потоком, генерирует объект HttpRequest и добавляет его в поток.

Объект HttpRequest предоставляет содержимое тела запроса как поток списков байтов. Объект также содержит информацию о запросе, такую как метод, URI и заголовки.

В следующем коде HttpServer прослушивает HTTP-запросы. Когда сервер получает запрос, он использует свойство method объекта HttpRequest для обработки запросов.

final HOST = InternetAddress.loopbackIPv4;
final PORT = 80;

HttpServer.bind(HOST, PORT).then((_server) {
  _server.listen((HttpRequest request) {
    switch (request.method) {
      case 'GET':
        handleGetRequest(request);
        break;
      case 'POST':
        ...
    }
  },
  onError: handleError);    // listen() failed.
}).catchError(handleError);

Объект HttpRequest предоставляет доступ к связанному объекту HttpResponse через свойство response. Сервер записывает свой ответ в тело объекта HttpResponse. Например, вот функция, которая отвечает на запрос:

void handleGetRequest(HttpRequest req) {
  HttpResponse res = req.response;
  res.write('Received request ${req.method}: ${req.uri.path}');
  res.close();
}
Реализованные типы
  • Поток<Uint8List>

Конструкторы

HttpRequest()

Свойства

certificate → X509Certificate?
только для чтения
Сертификат клиента, отправившего запрос.
connectionInfo → HttpConnectionInfo?
только для чтения
Информация о подключении клиента.
contentLength → int
только для чтения
Длина содержимого тела запроса.
cookies → Список<Cookie>
только для чтения
Куки в запросе, из заголовков "Cookie".
first → Future<Uint8List>
только для чтения, унаследованно
Первый элемент этого потока.
hashCode → int
только для чтения, унаследованно
Хэш-код этого объекта.
headers → HttpHeaders
только для чтения
Заголовки запроса.
isBroadcast → bool
только для чтения, унаследованно
Является ли этот поток потоком-рассылкой.
isEmpty → Future<bool>
только для чтения, унаследованно
Содержит ли этот поток какие-либо элементы.
last → Future<Uint8List>
только для чтения, унаследованно
Последний элемент этого потока.
length → Future<int>
только для чтения, унаследованно
Количество элементов в этом потоке.
method → Строка
только для чтения
Метод, такой как 'GET' или 'POST', для запроса.
persistentConnection → bool
только для чтения
Состояние постоянного соединения, сигнализированное клиентом.
protocolVersion → Строка
только для чтения
Версия HTTP-протокола, используемого в запросе, либо "1.0", либо "1.1".
requestedUri → Uri
только для чтения
Запрашиваемый URI для запроса.
response → HttpResponse
только для чтения
Объект HttpResponse, используемый для отправки ответа клиенту.
runtimeType → Тип
только для чтения, унаследованно
Представление runtime-типа объекта.
session → HttpSession
только для чтения
Сессия для данного запроса.
single → Future<Uint8List>
только для чтения, унаследованно
Единственный элемент этого потока.
uri → Uri
только для чтения
URI для запроса.

Методы

any(bool test(Uint8List element)) → Future<bool>
inherited
Проверяет, принимает ли test любой элемент, предоставленный этим потоком.
asBroadcastStream({void onListen(StreamSubscription<Uint8List> subscription)?, void onCancel(StreamSubscription<Uint8List> subscription)?}) → Stream<Uint8List>
inherited
Возвращает поток с множественными подписками, который генерирует те же события, что и этот.
asyncExpand<E>(Stream<E>? convert(Uint8List event)) → Stream<E>
inherited
Преобразует каждый элемент в последовательность асинхронных событий.
asyncMap<E>(FutureOr<E> convert(Uint8List event)) → Stream<E>
inherited
Создаёт новый поток, где каждое событие данных из этого потока асинхронно отображается на новое событие.
cast<R>() → Stream<R>
inherited
Адаптирует этот поток к Stream<R>.
contains(Object? needle) → Future<bool>
inherited
Возвращает, присутствует ли needle в элементах, предоставляемых этим потоком.
distinct([bool equals(Uint8List previous, Uint8List next)?]) → Stream<Uint8List>
inherited
Пропускает события данных, если они равны предыдущему событию данных.
drain<E>([E? futureValue]) → Future<E>
inherited
Отбрасывает все данные в этом потоке, но сигнализирует о завершении или возникновении ошибки.
elementAt(int index) → Future<Uint8List>
inherited
Возвращает значение index-го события данных этого потока.
every(bool test(Uint8List element)) → Future<bool>
inherited
Проверяет, принимает ли test все элементы, предоставляемые этим потоком.
expand<S>(Iterable<S> convert(Uint8List element)) → Stream<S>
inherited
Преобразует каждый элемент этого потока в последовательность элементов.
firstWhere(bool test(Uint8List element), {Uint8List orElse()?}) → Future<Uint8List>
inherited
Находит первый элемент этого потока, соответствующий test.
fold<S>(S initialValue, S combine(S previous, Uint8List element)) → Future<S>
inherited
Объединяет последовательность значений, многократно применяя combine.
forEach(void action(Uint8List element)) → Future
inherited
Выполняет action над каждым элементом этого потока.
handleError(Function onError, {bool test(dynamic error)?}) → Stream<Uint8List>
inherited
Создаёт обернутый поток, перехватывающий некоторые ошибки из этого потока.
join([String separator = ""]) → Future<String>
inherited
Объединяет строковое представление элементов в одну строку.
lastWhere(bool test(Uint8List element), {Uint8List orElse()?}) → Future<Uint8List>
inherited
Находит последний элемент в этом потоке, соответствующий test.
listen(void onData(Uint8List event)?, {Function? onError, void onDone()?, bool? cancelOnError}) → StreamSubscription<Uint8List>
inherited
Добавляет подписку на этот поток.
map<S>(S convert(Uint8List event)) → Stream<S>
inherited
Преобразует каждый элемент этого потока в новое событие потока.
noSuchMethod(Invocation invocation) → dynamic
inherited
Вызывается при попытке доступа к несуществующему методу или свойству.
pipe(StreamConsumer<Uint8List> streamConsumer) → Future
inherited
Перенаправляет события этого потока в streamConsumer.
reduce(Uint8List combine(Uint8List previous, Uint8List element)) → Future<Uint8List>
inherited
Объединяет последовательность значений, многократно применяя combine.
singleWhere(bool test(Uint8List element), {Uint8List orElse()?}) → Future<Uint8List>
inherited
Находит единственный элемент в этом потоке, соответствующий test.
skip(int count) → Stream<Uint8List>
inherited
Пропускает первые count события данных из этого потока.
skipWhile(bool test(Uint8List element)) → Stream<Uint8List>
inherited
Пропускает события данных из этого потока, пока они соответствуют test.
take(int count) → Stream<Uint8List>
inherited
Предоставляет не более первых count событий данных этого потока.
takeWhile(bool test(Uint8List element)) → Stream<Uint8List>
inherited
Пересылает события данных, если test успешно.
timeout(Duration timeLimit, {void onTimeout(EventSink<Uint8List> sink)?}) → Stream<Uint8List>
inherited
Создает новый поток с теми же событиями, что и этот поток.
toList() → Future<List<Uint8List>>
inherited
Собирает все элементы этого потока в List.
toSet() → Future<Set<Uint8List>>
inherited
Собирает данные этого потока в Set.
toString() → String
inherited
Строковое представление этого объекта.
transform<S>(StreamTransformer<Uint8List, S> streamTransformer) → Stream<S>
inherited
Применяет streamTransformer к этому потоку.
where(bool test(Uint8List event)) → Stream<Uint8List>
inherited
Создает новый поток из этого потока, отбрасывая некоторые элементы.

Операторы

operator ==(Object other) → bool
inherited
Оператор равенства.

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-io/HttpRequest-class.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API