Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtSpHtRed 169 of 224 menu
◀ ▶

Переход по редиректу в Dart

Сервер может ответить кодом перенаправления и новым адресом в заголовке. У клиента на базе dart:io поведение задают полем followRedirects. Высокоуровневый http.get по умолчанию следует редиректам.

Если followRedirects равен false, клиент останавливается на первом ответе. Для "/redirect/1" код будет перенаправления, а не финальный успех:

import 'dart:io'; import 'package:http/http.dart' as http; import 'package:http/io_client.dart'; void main() async { var inner = HttpClient()..followRedirects = false; var client = IOClient(inner); var response = await client.get( Uri.parse('https://httpbin.org/redirect/1'), ); print(response.statusCode); client.close(); }

Обычный http.get следует по GET перенаправлениям и возвращает ответ конечного адреса. Тот же путь дает другой код:

import 'package:http/http.dart' as http; void main() async { var response = await http.get( Uri.parse('https://httpbin.org/redirect/1'), ); print(response.statusCode); }

Выведите код ответа для "https://httpbin.org/redirect/1", если клиент не следует перенаправлениям.

Отправьте два чтения на тот же адрес: сначала без следования редиректу, затем с обычным режимом. Напечатайте оба кода через пробел.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить