Request: La demande n'est pas redirigée en raison d'un en-tête d'emplacement codé

Créé le 2 janv. 2018  ·  3Commentaires  ·  Source: request/request

Résumé

Salut les gars, j'ai des problèmes avec l'envoi de la demande à l'URL qui précède la redirection vers une autre après avoir reçu 301 .

Exemple le plus simple à reproduire

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

1) La première réponse contient un code d'état égal à 301 (cela signifie que nous devons rediriger vers l'URL à partir de l'en-tête location , mais elle contient des lettres russes codées : Салаты

2) Puisque cette URL ( http://www.tanitbar.ru/Салаты ) n'existe pas, j'obtiens l'erreur 404

Comportement attendu




Attendez-vous à obtenir le corps HTML de la page, avec un code d'état égal à 200

Comportement actuel



Je reçois 404 pour l'instant

Solution possible



curl fonctionne bien et redirige vers une autre URL après avoir reçu 301
curl "http://www.tanitbar.ru/menu.aspx?cat=6" -L , (curl ne redirige pas par défaut, nous devons donc passer l'option -L )

Je suppose que nous devrions décoder l'en-tête de localisation d'une manière ou d'une autre avant la redirection (au fait, je ne pouvais pas le décoder à la main)

Le contexte



Impossible de recevoir le contenu de la page de JS.

Votre environnement

| logiciel | version
| ---------------- | -------
| demande |^2.83.0
| nœud |8.7.0
| npm |5.4.2
| Système d'exploitation | Linux, Ubuntu

Merci d'avance!

stale

Commentaire le plus utile

@mikeal https://github.com/nodejs/node/issues/17390 peut être lié
Au fait, ce Buffer.from(location, 'binary').toString('utf8') fonctionne pour moi.

Tous les 3 commentaires

Faisons-nous même quelque chose avec l'encodage de cet en-tête ? Je pense que nous venons de comprendre l'analyseur de Node.js.

@mikeal https://github.com/nodejs/node/issues/17390 peut être lié
Au fait, ce Buffer.from(location, 'binary').toString('utf8') fonctionne pour moi.

Ce problème a été automatiquement marqué comme obsolète, car il n'a pas eu d'activité récente. Il sera fermé s'il n'y a plus d'activité. Merci pour vos contributions.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

xin7c picture xin7c  ·  3Commentaires

jdarling picture jdarling  ·  3Commentaires

keller35 picture keller35  ·  4Commentaires

mlegenhausen picture mlegenhausen  ·  4Commentaires

jasonxia23 picture jasonxia23  ·  3Commentaires