Класс HttpClientRequest
Класс HttpClientRequest представляет собой
HTTP-запрос, создаваемый классом HttpClient.
Он позволяет настроить заголовки, метод запроса,
тело запроса и другие параметры перед отправкой
на сервер. После настройки запрос отправляется
с помощью метода close, который возвращает
объект HttpClientResponse с ответом сервера.
Объект HttpClientRequest нельзя создать
напрямую через конструктор. Вместо этого его
получают через методы getUrl,
postUrl, openUrl и другие методы
класса HttpClient. Каждый из этих методов
принимает первым параметром метод HTTP-запроса
(например, 'GET' или 'POST'), а вторым - объект
Uri с адресом запроса.
Синтаксис
HttpClientRequest request = await httpClient.getUrl(uri);
HttpClientRequest request = await httpClient.postUrl(uri);
HttpClientRequest request = await httpClient.openUrl(method, uri);
Свойства
Класс HttpClientRequest имеет следующие
основные свойства:
headers - объект HttpHeaders
для управления заголовками запроса;
method - строка с методом HTTP-запроса
(например, 'GET' или 'POST');
uri - объект Uri с адресом запроса;
contentLength - длина тела запроса в байтах;
persistentConnection - логическое значение,
указывающее на использование постоянного соединения.
Методы
Класс HttpClientRequest имеет следующие
основные методы:
write - записывает строку в тело запроса;
add - добавляет список байтов в тело запроса;
close - завершает запрос и возвращает
Future с объектом HttpClientResponse.
Пример
Давайте создадим GET-запрос и получим ответ от сервера:
import 'dart:io';
void main() async
{
HttpClient httpClient = HttpClient();
Uri uri = Uri.parse('http://example.com');
HttpClientRequest request = await httpClient.getUrl(uri);
HttpClientResponse response = await request.close();
print(response.statusCode);
httpClient.close();
}
Результат выполнения кода:
200
Пример
Давайте создадим POST-запрос и отправим данные на сервер:
import 'dart:io';
void main() async
{
HttpClient httpClient = HttpClient();
Uri uri = Uri.parse('http://example.com');
HttpClientRequest request = await httpClient.postUrl(uri);
request.headers.contentType = ContentType.json;
request.write('{"key": "value"}');
HttpClientResponse response = await request.close();
print(response.statusCode);
httpClient.close();
}
Результат выполнения кода:
200
Пример
Давайте установим пользовательский заголовок в запросе:
import 'dart:io';
void main() async
{
HttpClient httpClient = HttpClient();
Uri uri = Uri.parse('http://example.com');
HttpClientRequest request = await httpClient.getUrl(uri);
request.headers.set('X-Custom-Header', 'abcde');
HttpClientResponse response = await request.close();
print(request.headers.value('X-Custom-Header'));
httpClient.close();
}
Результат выполнения кода:
"abcde"
Смотрите также
-
класс
HttpClient,
который создает HTTP-запросы -
метод
getUrl,
который создает GET-запрос -
метод
postUrl,
который создает POST-запрос -
класс
HttpClientResponse,
который представляет ответ сервера