Request: Запрос не перенаправляется из-за закодированного заголовка местоположения

Созданный на 2 янв. 2018  ·  3Комментарии  ·  Источник: request/request

Резюме

Привет, ребята, у меня возникли проблемы с отправкой запроса на URL-адрес, который предшествует перенаправлению на другой после получения 301 .

Самый простой пример для воспроизведения

request('http://www.tanitbar.ru/menu.aspx?cat=6', function (error, response, body) {
  console.log('error:', error);
  console.log("response", response);
});,

1) Первый ответ содержит код состояния равный 301 (это означает, что мы должны перенаправить на URL из заголовка location , но он содержит закодированные русские буквы: Салаты

2) Поскольку этот URL-адрес ( http://www.tanitbar.ru/Салаты ) не существует, я получаю сообщение об ошибке 404

Ожидаемое поведение




Ожидайте получить тело страницы в формате html с кодом состояния, равным 200

Текущее поведение



Я сейчас получаю 404

Возможное решение



curl работает нормально и перенаправляет на другой URL после получения 301
curl "http://www.tanitbar.ru/menu.aspx?cat=6" -L , (curl не перенаправляет по умолчанию, поэтому нам нужно передать опцию -L )

Я предполагаю, что мы должны как-то декодировать заголовок местоположения перед перенаправлением (кстати, я не мог декодировать его вручную)

Контекст



Не удалось получить содержимое страницы из JS.

Ваша среда

| программное обеспечение | версия
| ---------------- | -------
| запрос |^2.83.0
| узел |8.7.0
| н/м | 5.4.2
| Операционная система | линукс, убунту

Заранее спасибо!

Самый полезный комментарий

@mikeal https://github.com/nodejs/node/issues/17390 может быть связано
Кстати, этот Buffer.from(location, 'binary').toString('utf8') у меня работает.

Все 3 Комментарий

Делаем ли мы вообще что-нибудь с кодировкой этого заголовка? Я думаю, что мы просто поняли это правильно из парсера Node.js.

@mikeal https://github.com/nodejs/node/issues/17390 может быть связано
Кстати, этот Buffer.from(location, 'binary').toString('utf8') у меня работает.

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

Была ли эта страница полезной?
0 / 5 - 0 рейтинги