Класс HttpClientResponse
Класс HttpClientResponse представляет собой
ответ сервера на HTTP-запрос, выполненный
через HttpClient. Объект этого класса
возвращается при выполнении запроса и содержит
всю информацию об ответе: статус-код, заголовки,
тело ответа и другие данные. Класс реализует
интерфейс Stream, поэтому тело ответа
можно читать как поток байтов. Основные свойства
класса: statusCode - числовой код состояния
HTTP (например, 200 или 404), reasonPhrase -
текстовое пояснение к статусу, contentLength -
длина тела ответа в байтах, headers -
коллекция заголовков ответа. Также у объекта
есть методы transform и listen,
унаследованные от Stream, которые
позволяют декодировать тело ответа в строку.
Синтаксис
HttpClientResponse response
Пример
Давайте выполним GET-запрос к серверу
и получим объект HttpClientResponse,
выведя его статус-код:
import 'dart:io';
void main() async
{
HttpClient client = HttpClient();
Uri url = Uri.parse('http://example.com');
HttpClientRequest request = await client.getUrl(url);
HttpClientResponse response = await request.close();
print(response.statusCode);
client.close();
}
Результат выполнения кода:
200
Пример
Давайте прочитаем тело ответа и выведем его
в виде строки, используя метод transform
с декодером UTF-8:
import 'dart:io';
import 'dart:convert';
void main() async
{
HttpClient client = HttpClient();
Uri url = Uri.parse('http://example.com');
HttpClientRequest request = await client.getUrl(url);
HttpClientResponse response = await request.close();
String body = await response.transform(utf8.decoder).join();
print(body.length > 0);
client.close();
}
Результат выполнения кода:
true
Пример
Давайте проверим статус-код ответа и выведем сообщение в зависимости от результата:
import 'dart:io';
void main() async
{
HttpClient client = HttpClient();
Uri url = Uri.parse('http://example.com');
HttpClientRequest request = await client.getUrl(url);
HttpClientResponse response = await request.close();
if (response.statusCode == 200) {
print('OK');
} else {
print('Error: ${response.statusCode}');
}
client.close();
}
Результат выполнения кода:
"OK"
Смотрите также
-
класс
HttpClient,
который выполняет HTTP-запросы -
метод
getUrl,
который создает GET-запрос -
метод
postUrl,
который создает POST-запрос -
свойство
statusCode,
которое возвращает код состояния ответа