Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

162
Visualizações
¿Cómo la solicitud Angular2 Http puede devolver el cuerpo como binario?

Tengo una url que devuelve el contenido html con charset=iso-8859-7, lo que significa que la solicitud http angular convierte los datos a utf8 de manera predeterminada y no puedo codificarlos nuevamente en iso-8859-7 correctamente. Después de mucho buscar, descubrí que muchas personas tenían el mismo problema y la mayoría de las respuestas eran cambiar el conjunto de caracteres en el servidor, algo que no puedo hacer porque el servidor no me pertenece.

Entonces, la pregunta es ¿cómo puede la solicitud HTTP devolver binario para que pueda codificarlos en una cadena iso-8859-7?

EDITAR - SOLUCIÓN:
Lo que finalmente hice fue usar TextDecoder y { responseType: ResponseContentType.ArrayBuffer } en RequestOptions . Aquí hay un ejemplo para ayudar a cualquiera que esté tratando de analizar páginas html y decodificarlas en la codificación correcta. Espero ayudar a todos los chicos que intentaron esto en un proyecto que usa Angular2 como Ionic2.

 public parser() { // Set content type let headers = new Headers({'Content-Type': 'application/x-www-form-urlencoded;'}); // Create a request option, with withCredentials for sending previous stored cookies let options = new RequestOptions({ withCredentials: true, headers: headers, responseType: ResponseContentType.ArrayBuffer }); return this.http.get('https://blablablablabla', options) // ...using get request .map((res: any) => { var string = new TextDecoder('iso-8859-7').decode(res._body); var parser = new DOMParser(); var htmlDoc = parser.parseFromString(string, "text/html"); console.log(string) ..... blabla blabla doing some stuff here ..... }) .catch((error: any) => Observable.throw(error || 'Server error')); }
about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Incluya RequestOptionsArgs cuando envíe la solicitud.

Especifique el tipo de responseType : ResponseContentType dentro RequestOptionsArgs . (Ya sea ResponseContentType.ArrayBuffer o ResponseContentType.Blob )

Use TextDecoder o algo similar para decodificar el resultado.

Ver los documentos:

https://angular.io/api/http/Http

https://angular.io/api/http/RequestOptions

https://angular.io/api/http/ResponseContentType

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda