Класс HttpRequest
Клиентский XHR-запрос для получения данных из URL, формально известный как XMLHttpRequest.
HttpRequest может использоваться для получения данных по HTTP и FTP протоколам и полезен для обновлений страниц в стиле AJAX.
Самый простой способ получить содержимое текстового файла, например, файла в формате JSON, — это использовать getString. Например, следующий код получает содержимое файла JSON и выводит его длину:
var path = 'myData.json';
HttpRequest.getString(path).then((String fileContents) {
print(fileContents.length);
}).catchError((error) {
print(error.toString());
}); Получение данных с других серверов
По соображениям безопасности браузеры накладывают ограничения на запросы, выполняемые встроенными приложениями. При стандартном поведении этого класса код, делающий запрос, должен быть размещён в том же источнике (имя домена, порт и протокол прикладного уровня), что и запрашиваемый ресурс. В примере выше файл myData.json должен находиться в одной папке с приложением, которое его использует.
Другие ресурсы
- Динамическое получение данных, учебник показывает, как загружать данные из статического файла или с сервера.
- Статья Dart об использовании HttpRequests
- JS XMLHttpRequest
- Использование XMLHttpRequest
- Наследование
-
- Object
- EventTarget
- HttpRequestEventTarget
- HttpRequest
- Аннотации
-
- @Native("XMLHttpRequest")
Конструкторы
- HttpRequest() factory
- Общий конструктор для любого типа запроса (GET, POST и т. д.).
Свойства
- hashCode → int только для чтения, унаследованное
- Хэш-код этого объекта.
- on → Events только для чтения, унаследованное
- Это удобный аксессор для потоков событий, который следует использовать только тогда, когда явный аксессор недоступен.
- onAbort → Stream<
ProgressEvent> только для чтения, унаследованное - Поток
abortсобытий, обрабатываемых этим HttpRequestEventTarget. - onError → Stream<
ProgressEvent> только для чтения, унаследованное - Поток
errorсобытий, обрабатываемых этим HttpRequestEventTarget. - onLoad → Stream<
ProgressEvent> только для чтения, унаследованное - Поток
loadсобытий, обрабатываемых этим HttpRequestEventTarget. - onLoadEnd → Stream<
ProgressEvent> @SupportedBrowser(SupportedBrowser.CHROME), @SupportedBrowser(SupportedBrowser.FIREFOX), @SupportedBrowser(SupportedBrowser.IE, '10'), @SupportedBrowser(SupportedBrowser.SAFARI), только для чтения, унаследованное - Поток
loadendсобытий, обрабатываемых этим HttpRequestEventTarget. - onLoadStart → Stream<
ProgressEvent> только для чтения, унаследованное - Поток
loadstartсобытий, обрабатываемых этим HttpRequestEventTarget. - onProgress → Stream<
ProgressEvent> @SupportedBrowser(SupportedBrowser.CHROME), @SupportedBrowser(SupportedBrowser.FIREFOX), @SupportedBrowser(SupportedBrowser.IE, '10'), @SupportedBrowser(SupportedBrowser.SAFARI), только для чтения, унаследованное - Поток
progressсобытий, обрабатываемых этим HttpRequestEventTarget. - onReadyStateChange → Stream<
Event> только для чтения - Обработчики событий, которые будут уведомляться каждый раз, когда значения объекта HttpRequest
readyStateизменяются. - onTimeout → Stream<
ProgressEvent> только для чтения, унаследованное - Поток
timeoutсобытий, обрабатываемых этим HttpRequestEventTarget. - readyState → int только для чтения
- Индикатор текущего состояния запроса:
- response → dynamic @SupportedBrowser(SupportedBrowser.CHROME), @SupportedBrowser(SupportedBrowser.FIREFOX), @SupportedBrowser(SupportedBrowser.IE, '10'), @SupportedBrowser(SupportedBrowser.SAFARI), только для чтения
- Данные, полученные в ответ на запрос.
- responseHeaders → Map<
String, String> только для чтения - Возвращает все заголовки ответа в виде карты ключ-значение.
- responseText → String? только для чтения
- Ответ в виде строки или пустой строки при ошибке.
- responseType ↔ String чтение/запись
- Строка, указывающая серверу желаемый формат ответа.
- responseUrl → String? @JSName('responseURL'), только для чтения
- responseXml → Document? @JSName('responseXML'), только для чтения
- Ответ на запрос или null при ошибке.
- runtimeType → Type только для чтения, унаследованное
- Представление типа объекта во время выполнения.
- status → int? только для чтения
- Код HTTP-результата запроса (200, 404 и т. д.). См. также: Коды статуса HTTP
- statusText → String? только для чтения
- Строка ответа запроса (например, "OK"). См. также: Коды статуса HTTP
- timeout ↔ int? чтение/запись
- Длительность в миллисекундах, по истечении которой запрос автоматически прерывается.
- upload → HttpRequestUpload @Unstable(), только для чтения
- EventTarget, который может содержать обработчики для отслеживания хода выполнения запроса.
- withCredentials ↔ bool? чтение/запись
- True, если для межсайтовых запросов следует использовать учетные данные, такие как cookie или заголовки авторизации; false в противном случае.
Методы
- abort(
) → void - Останавливает текущий запрос.
- addEventListener(
String type, EventListener? listener, [bool? useCapture]) → void inherited - dispatchEvent(
Event event) → bool inherited - getAllResponseHeaders(
) → String @Unstable() - Извлекает все заголовки ответа от запроса.
- getResponseHeader(
String name) → String? @Unstable() - Возвращает заголовок ответа с именем
header, или null, если он не найден. - noSuchMethod(
Invocation invocation) → dynamic inherited - Вызывается при попытке обратиться к несуществующему методу или свойству.
- open(
String method, String url, {bool? async, String? user, String? password}) → void - Указывает желаемый
url, иmethodдля выполнения запроса. - overrideMimeType(
String mime) → void @SupportedBrowser(SupportedBrowser.CHROME), @SupportedBrowser(SupportedBrowser.FIREFOX), @SupportedBrowser(SupportedBrowser.SAFARI) - Указывает конкретный тип MIME (например,
text/xml) для ответа. - removeEventListener(
String type, EventListener? listener, [bool? useCapture]) → void inherited - send(
[dynamic body_OR_data]) → void - Отправляет запрос с любым заданным
data. - setRequestHeader(
String name, String value) → void - Устанавливает значение HTTP-заголовка запроса.
- toString(
) → String inherited - Строковое представление этого объекта.
Операторы
- operator ==(
Object other) → bool inherited - Оператор равенства.
Статические свойства
- supportsCrossOrigin → bool только для чтения
- Проверяет, поддерживает ли текущая платформа выполнение запросов к другим доменам.
- supportsLoadEndEvent → bool только для чтения
- Проверяет, поддерживается ли событие LoadEnd на текущей платформе.
- supportsOverrideMimeType → bool только для чтения
- Проверяет, поддерживается ли метод overrideMimeType на текущей платформе.
- supportsProgressEvent → bool только для чтения
- Проверяет, поддерживается ли событие Progress на текущей платформе.
Статические методы
- getString(
String url, {bool? withCredentials, void onProgress(ProgressEvent e)?}) → Future< String> - Создаёт запрос GET для указанного
url. - postFormData(
String url, Map< String, String> data, {bool? withCredentials, String? responseType, Map< String, String>? requestHeaders, void onProgress(ProgressEvent e)?}) → Future< HttpRequest> - Выполняет серверный POST-запрос с указанными данными, закодированными как данные формы.
- request(
String url, {String? method, bool? withCredentials, String? responseType, String? mimeType, Map< String, String>? requestHeaders, dynamic sendData, void onProgress(ProgressEvent e)?}) → Future< HttpRequest> - Создаёт и отправляет запрос URL для указанного
url. - requestCrossOrigin(
String url, {String? method, String? sendData}) → Future< String> - Выполняет запрос к другому домену по указанному URL.
Константы
- DONE → const int
-
4 - HEADERS_RECEIVED → const int
-
2 - LOADING → const int
-
3 - OPENED → const int
-
1 - readyStateChangeEvent → const EventStreamProvider<
Event> - Статический фабричный метод, предназначенный для экспонирования
readystatechangeсобытий обработчикам событий, которые не обязательно являются экземплярами HttpRequest.const EventStreamProvider<Event>('readystatechange') - UNSENT → const int
-
0
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-html/HttpRequest-class.html