Превышен лимит перенаправления - HTTP-запрос в Dart

умысел

Я учусь использовать пакет http ( ссылку) для получения данных без графического интерфейса, отправив и http GET запрос через http.send() метод.

Препятствия

Я быстро понял, что некоторые запросы работают, а некоторые нет. Например, ycombinator и ebay работают, а более динамичный веб-сайт (?), Как Taobao, не работает.

Когда запрос работает, я получил html распечатанный. когда это не я получил Redirect limit exceeded исключение.

Попытка разрешения

Обработка исключения только предотвращает сбой программы, но не html в розыске.

Я также считаю, что это может потребовать четкого указания user-agentи добавил user-agent String по словам, бесплодная попытка.

Возможные причины

Веб-сайт может быть настроен для обслуживания только браузера, однако curl в командной строке и postman работать без проблем.

Другой причиной может быть неправильный заголовок http-запроса, что может привести к циклу перенаправления, который в итоге завершится ошибкой

Вопрос

Ошибка из-за неправильной настройки запроса?

Как предотвратить петлю перенаправления, которая не приводит к получению данных HTML?

Я все еще новичок в дартс, http запрос и соскоб и смиренно прошу вашей помощи. Заранее спасибо.

Вот код, который я использовал:

// List of URLs
var url = "https://news.ycombinator.com";
var ebay =
    "https://www.ebay.com.au/itm/10W-12V-SOLAR-PANEL-and-2-amp-REGULATOR-RV-camp-marine-TRICKLE-BATTERY-CHARGER/172058512436?_trkparms=pageci%3Ac2411dc4-811e-11e9-8e21-74dbd1803149%7Cparentrq%3Afd751ccc16a0abc05acfffa2ffee9352%7Ciid%3A1";
var tmall = "https://detail.tmall.com/item.htm?id=577812405625";

// Instantiate the client
var client = Client();

// Create the request
var request = Request("GET", Uri.parse(url));
// var request = Request("GET", Uri.parse(ebay));
// var request = Request("GET", Uri.parse(tmall));

// Configure the request headers
request.headers[HttpHeaders.contentTypeHeader] =
    'text/html; charset=utf-8';
request.headers[HttpHeaders.userAgentHeader] =
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:67.0) Gecko/20100101 Firefox/67.0';

// Handling response
var response = await client.send(request);
response.stream.transform(utf8.decoder).listen((onData) {
  print(onData);
});

0 ответов

Другие вопросы по тегам