Request: A solicitação não é redirecionada devido ao cabeçalho de localização codificado

Criado em 2 jan. 2018  ·  3Comentários  ·  Fonte: request/request

Resumo

Olá pessoal, estou com problemas para enviar requisição para URL que antecede o redirecionamento para outra após receber 301 .

Exemplo mais simples de reproduzir

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

1) A primeira resposta contém código de status igual a 301 (isso significa que devemos redirecionar para a URL do cabeçalho location , mas contém letras russas codificadas: Салаты

2) Como este URL ( http://www.tanitbar.ru/Салаты ) não existe, estou recebendo um erro 404

Comportamento esperado




Espere obter o corpo da página html, com código de status igual a 200

Comportamento atual



Estou recebendo 404 por enquanto

Solução possível



curl funciona bem e redireciona para outro URL após receber 301
curl "http://www.tanitbar.ru/menu.aspx?cat=6" -L , (o curl não redireciona por padrão, portanto, precisamos passar a opção -L )

Acho que devemos decodificar o cabeçalho de localização de alguma forma antes do redirecionamento (a propósito, não consegui decodificá-lo manualmente)

Contexto



Não foi possível receber o conteúdo da página do JS.

Seu ambiente

| software | versão
| ---------------- | -------
| solicitação |^2.83.0
| nó |8.7.0
| npm |5.4.2
| Sistema Operacional | Linux, Ubuntu

Desde já, obrigado!

stale

Comentários muito úteis

@mikeal https://github.com/nodejs/node/issues/17390 pode estar relacionado
A propósito, esse Buffer.from(location, 'binary').toString('utf8') funciona para mim.

Todos 3 comentários

Nós fazemos alguma coisa com a codificação desse cabeçalho? Acho que acertamos no analisador do Node.js.

@mikeal https://github.com/nodejs/node/issues/17390 pode estar relacionado
A propósito, esse Buffer.from(location, 'binary').toString('utf8') funciona para mim.

Este problema foi marcado automaticamente como obsoleto porque não teve atividade recente. Será fechado se não ocorrer mais nenhuma atividade. Obrigado por suas contribuições.

Esta página foi útil?
0 / 5 - 0 avaliações