Класс HttpRequest
Объект серверной стороны, содержащий содержимое и информацию об HTTP-запросе.
Примечание: ознакомьтесь с пакетом http_server, который упрощает работу с низкоуровневым подсистемой HTTP-сервера dart:io.
Объекты HttpRequest генерируются объектом HttpServer, который слушает HTTP-запросы на определённом хосте и порту. Для каждого полученного запроса HttpServer, являющийся потоком, генерирует объект HttpRequest и добавляет его в поток.
Объект HttpRequest предоставляет содержимое тела запроса в виде потока списков байтов. Объект также содержит информацию о запросе, такую как метод, URI и заголовки.
В следующем коде HttpServer слушает HTTP-запросы. При получении запроса сервер использует свойство method объекта HttpRequest для обработки запросов.
final HOST = InternetAddress.LOOPBACK_IP_V4;
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();
}
Конструкторы
- HttpRequest()
Свойства
- certificate → X509Certificate только для чтения
-
Сертификат клиента, совершившего запрос.
- connectionInfo → HttpConnectionInfo только для чтения
-
Информация о подключении клиента.
- contentLength → int только для чтения
-
Длина содержимого тела запроса.
-
Файлы cookie в запросе, из заголовков Cookie.
- headers → HttpHeaders только для чтения
-
Заголовки запроса.
- method → String только для чтения
-
Метод, такой как 'GET' или 'POST', для запроса.
- persistentConnection → bool только для чтения
-
Состояние постоянного подключения, сигнализированное клиентом.
- protocolVersion → String только для чтения
-
Версия HTTP-протокола, используемая в запросе, либо "1.0", либо "1.1".
- requestedUri → Uri только для чтения
-
Запрашиваемый URI для запроса.
- response → HttpResponse только для чтения
-
Объект
HttpResponse, используемый для отправки ответа клиенту. - session → HttpSession только для чтения
-
Сессия для данного запроса.
- uri → Uri только для чтения
-
URI для запроса.
- first → Future<Список<int>> только для чтения, унаследованное
-
Возвращает первый элемент потока.
- hashCode → int только для чтения, унаследованное
-
Код хеширования для этого объекта.
- isBroadcast → bool только для чтения, унаследованное
-
Является ли этот поток потоком широковещательной передачи.
- isEmpty → Future<bool> только для чтения, унаследованное
-
Сообщает, содержит ли этот поток какие-либо элементы.
- last → Future<Список<int>> только для чтения, унаследованное
-
Возвращает последний элемент потока.
- length → Future<int> только для чтения, унаследованное
-
Считает элементы в потоке.
- runtimeType → Type только для чтения, унаследованное
-
Представление runtime-типа объекта.
- single → Future<Список<int>> только для чтения, унаследованное
-
Возвращает единственный элемент.
Операторы
- operator ==(
other) → bool унаследованное -
Оператор равенства.
Методы
- any(
bool test(T element)) → Future<bool> inherited -
Проверяет, принимает ли
testлюбой элемент, предоставляемый этим потоком. - asBroadcastStream(
{void onListen(StreamSubscription<T> subscription), void onCancel(StreamSubscription<T> subscription) }) → Stream<List<int>> inherited -
Возвращает поток с множественными подписками, производящий те же события, что и этот.
- asyncExpand<E>(
Stream<E> convert(T event)) → Stream<E> inherited -
Создаёт новый поток со событиями потока на каждый оригинальный элемент.
- asyncMap<E>(
dynamic convert(T event)) → Stream<E> inherited -
Создаёт новый поток, асинхронно отображающий каждое событие данных этого потока на новое событие.
- contains(
Object needle) → Future<bool> inherited -
Проверяет, встречается ли
needleв элементах, предоставляемых этим потоком. - distinct(
[bool equals(T previous, T next) ]) → Stream<List<int>> inherited -
Пропускает события данных, если они равны предыдущему событию данных.
- drain<E>(
[E futureValue ]) → Future<E> inherited -
Отбрасывает все данные из потока, но сигнализирует об окончании или возникновении ошибки.
- elementAt(
int index) → Future<List<int>> inherited -
Возвращает значение
index-го события данных этого потока. - every(
bool test(T element)) → Future<bool> inherited -
Проверяет, принимает ли
testвсе элементы, предоставляемые этим потоком. - expand<S>(
Iterable<S> convert(T value)) → Stream<S> inherited -
Создаёт новый поток из этого потока, преобразующий каждый элемент в ноль или более событий.
- firstWhere(
bool test(T element), { Object defaultValue() }) → Future inherited -
Находит первый элемент этого потока, соответствующий
test. - fold<S>(
S initialValue, S combine(S previous, T element)) → Future<S> inherited -
Сводит последовательность значений, повторяя применение
combine. - forEach(
void action(T element)) → Future inherited -
Выполняет
actionдля каждого события данных потока. - handleError(
Function onError, { bool test(error) }) → Stream<List<int>> inherited -
Создаёт оболочку Stream, перехватывающую некоторые ошибки из этого потока.
- join(
[String separator = "" ]) → Future<String> inherited -
Собирает строку представлений строковых событий данных.
- lastWhere(
bool test(T element), { Object defaultValue() }) → Future inherited -
Находит последний элемент в этом потоке, соответствующий
test. - listen(
void onData(T event), { Function onError, void onDone(), bool cancelOnError }) → StreamSubscription<List<int>> inherited -
Добавляет подписку на этот поток.
- map<S>(
S convert(T event)) → Stream<S> inherited -
Создаёт новый поток, преобразующий каждый элемент этого потока в новое значение с помощью функции
convert. - noSuchMethod(
Invocation invocation) → dynamic inherited -
Вызывается при попытке доступа к несуществующему методу или свойству.
- pipe(
StreamConsumer<List<int>> streamConsumer) → Future inherited -
Перенаправляет события этого потока в
streamConsumer. - reduce(
List<int> combine(T previous, T element)) → Future<List<int>> inherited -
Сводит последовательность значений, повторяя применение
combine. - singleWhere(
bool test(T element)) → Future<List<int>> inherited -
Находит единственный элемент в этом потоке, соответствующий
test. - skip(
int count) → Stream<List<int>> inherited -
Пропускает первые
countсобытия данных из этого потока. - skipWhile(
bool test(T element)) → Stream<List<int>> inherited -
Пропускает события данных из этого потока, пока они соответствуют
test. - take(
int count) → Stream<List<int>> inherited -
Предоставляет не более первых
countсобытий данных из этого потока. - takeWhile(
bool test(T element)) → Stream<List<int>> inherited -
Пересылает события данных, пока
testуспешен. - timeout(
Duration timeLimit, { void onTimeout(EventSink<T> sink) }) → Stream<List<int>> inherited -
Создаёт новый поток с теми же событиями, что и этот поток.
- toList(
) → Future<List<List<int>>> inherited -
Собирает данные этого потока в List.
- toSet(
) → Future<Set<Список<int>>> inherited -
Собирает данные этого потока в множество.
- toString(
) → Строка inherited -
Возвращает строковое представление этого объекта.
- transform<S>(
StreamTransformer<Список<int>, S> streamTransformer) → Поток<S> inherited -
Цепочкой этот поток как вход для предоставленного преобразователя потоков.
- where(
bool test(T event)) → Поток<Список<int>> inherited -
Создаёт новый поток из этого потока, отбрасывая некоторые события данных.
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-io/HttpRequest-class.html