Класс 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 запроса из заголовков «Cookie».
- first → Future<
Uint8List> только для чтения, унаследовано - Первый элемент этого потока.
- hashCode → int только для чтения, унаследовано
- Хеш-код этого объекта.
- headers → HttpHeaders только для чтения
- Заголовки запроса.
- isBroadcast → bool только для чтения, унаследовано
- Является ли этот поток широковещательным.
- isEmpty → Future<
bool> только для чтения, унаследовано - Содержит ли этот поток какие-либо элементы.
- last → Future<
Uint8List> только для чтения, унаследовано - Последний элемент этого потока.
- length → Future<
int> только для чтения, унаследовано - Количество элементов в этом потоке.
- method → String только для чтения
- Метод запроса, например 'GET' или 'POST'.
- persistentConnection → bool только для чтения
- Состояние постоянного соединения, переданное клиентом.
- protocolVersion → String только для чтения
- Версия протокола HTTP, использованная в запросе: «1.0» или «1.1».
- requestedUri → Uri только для чтения
- URI, запрошенный в запросе.
- response → HttpResponse только для чтения
- Объект HttpResponse, используемый для отправки ответа клиенту.
- runtimeType → Type только для чтения, унаследовано
- Представление типа объекта во время выполнения.
- session → HttpSession только для чтения
- Сеанс для данного запроса.
- single → Future<
Uint8List> только для чтения, унаследовано - Единственный элемент этого потока.
- uri → Uri только для чтения
- URI запроса.
Методы
- any(
bool test(Uint8List element)) → Future< bool> унаследовано - Проверяет, принимает ли
testкакой-либо элемент, предоставленный этим потоком. - asBroadcastStream(
{void onListen(StreamSubscription< Uint8List> subscription)?, void onCancel(StreamSubscription< Uint8List> subscription)?}) → Stream< Uint8List> унаследовано - Возвращает поток с несколькими подписками, который генерирует те же события, что и этот поток.
- asyncExpand<
E>( Stream< E>? convert(Uint8List event)) → Stream< E> унаследовано - Преобразует каждый элемент в последовательность асинхронных событий.
- asyncMap<
E>( FutureOr< E> convert(Uint8List event)) → Stream< E> унаследовано - Создает новый поток, асинхронно преобразуя каждое событие данных этого потока в новое событие.
- cast<
R>( ) → Stream< R> унаследовано - Приводит этот поток к типу
Stream<R>. - contains(
Object? needle) → Future< bool> унаследовано - Возвращает, встречается ли
needleсреди элементов, предоставленных этим потоком. - distinct(
[bool equals(Uint8List previous, Uint8List next)?]) → Stream< Uint8List> унаследовано - Пропускает события данных, равные предыдущему событию данных.
- drain<
E>( [E? futureValue]) → Future< E> унаследовано - Отбрасывает все данные из этого потока, но сообщает о его завершении или возникновении ошибки.
- elementAt(
int index) → Future< Uint8List> унаследовано - Возвращает значение
index-го события данных этого потока. - every(
bool test(Uint8List element)) → Future< bool> унаследовано - Проверяет, принимает ли
testвсе элементы, предоставленные этим потоком. - expand<
S>( Iterable< S> convert(Uint8List element)) → Stream< S> унаследовано - Преобразует каждый элемент этого потока в последовательность элементов.
- firstWhere(
bool test(Uint8List element), {Uint8List orElse()?}) → Future< Uint8List> унаследовано - Находит первый элемент этого потока, соответствующий
test. - fold<
S>( S initialValue, S combine(S previous, Uint8List element)) → Future< S> унаследовано - Объединяет последовательность значений, многократно применяя
combine. - forEach(
void action(Uint8List element)) → Future унаследовано - Выполняет
actionдля каждого элемента этого потока. - handleError(
Function onError, {bool test(dynamic error)?}) → Stream< Uint8List> унаследовано - Создает поток-обертку, перехватывающий некоторые ошибки этого потока.
- join(
[String separator = ""]) → Future< String> унаследовано - Объединяет строковые представления элементов в одну строку.
- lastWhere(
bool test(Uint8List element), {Uint8List orElse()?}) → Future< Uint8List> унаследовано - Находит последний элемент этого потока, соответствующий
test. - listen(
void onData(Uint8List event)?, {Function? onError, void onDone()?, bool? cancelOnError}) → StreamSubscription< Uint8List> унаследовано - Добавляет подписку на этот поток.
- map<
S>( S convert(Uint8List event)) → Stream< S> унаследовано - Преобразует каждый элемент этого потока в новое событие потока.
- noSuchMethod(
Invocation invocation) → dynamic унаследовано - Вызывается при обращении к несуществующему методу или свойству.
- pipe(
StreamConsumer< Uint8List> streamConsumer) → Future унаследовано - Передает события этого потока в
streamConsumer. - reduce(
Uint8List combine(Uint8List previous, Uint8List element)) → Future< Uint8List> унаследовано - Объединяет последовательность значений, многократно применяя
combine. - singleWhere(
bool test(Uint8List element), {Uint8List orElse()?}) → Future< Uint8List> унаследовано - Находит единственный элемент этого потока, соответствующий
test. - skip(
int count) → Stream< Uint8List> унаследовано - Пропускает первые
countсобытий данных этого потока. - skipWhile(
bool test(Uint8List element)) → Stream< Uint8List> унаследовано - Пропускает события данных этого потока, пока они соответствуют
test. - take(
int count) → Stream< Uint8List> унаследовано - Предоставляет не более первых
countсобытий данных этого потока. - takeWhile(
bool test(Uint8List element)) → Stream< Uint8List> унаследовано - Передает события данных, пока
testвозвращает true. - timeout(
Duration timeLimit, {void onTimeout(EventSink< Uint8List> sink)?}) → Stream< Uint8List> унаследовано - Создает новый поток с теми же событиями, что и у этого потока.
- toList(
) → Future< List< Uint8List>> унаследовано - Собирает все элементы этого потока в
List. - toSet(
) → Future< Set< Uint8List>> унаследовано - Собирает данные этого потока в
Set. - toString(
) → String унаследовано - Строковое представление этого объекта.
- transform<
S>( StreamTransformer< Uint8List, S> streamTransformer) → Stream< S> унаследовано - Применяет
streamTransformerк этому потоку. - where(
bool test(Uint8List event)) → Stream< Uint8List> унаследовано - Создает на основе этого потока новый поток, отбрасывающий некоторые элементы.
Операторы
- 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/HttpRequest-class.html