Класс 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();
} Конструкторы
- HttpRequest()
Свойства
- certificate → X509Certificate? только для чтения
- Сертификат клиента, отправившего запрос.
- connectionInfo → HttpConnectionInfo? только для чтения
- Информация о подключении клиента.
- contentLength → int только для чтения
- Длина содержимого тела запроса.
- Куки в запросе, из заголовков "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