Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Decodificar respuesta de un https con IdHTTP (https://www.clubdelphi.com/foros/showthread.php?t=89349)

vicvil 06-11-2015 15:19:06

Decodificar respuesta de un https con IdHTTP
 
Bueno Casimiro me pidió crear un nuevo hilo con mi consulta.
Lo que pasa es que envío un archivo xml con su cabecera a traves de idHTTP a un host https el cual ocupa encriptación SSL para su envío.
El servidor al cual envío el archivo me responde con OK y me envía de vuelta una respuesta el cual es un pequeño archivo xml, pero éste viene codificado.
Mi pregunta era cómo decodifico esa respuesta? ¿ocupándo el mismo componente "IdSSLIOHandlerSocket" que ocupé para el envío? o ¿existe otra manera de hacerlo?
No conozco mucho los componentes Indy es por eso mi duda.

jhonny 07-11-2015 15:46:47

Hola, ¿De casualidad en la documentación dice cuál es la base para codificación/decodificación utilizada?

Neftali [Germán.Estévez] 09-11-2015 11:00:29

Cita:

Empezado por jhonny (Mensaje 499034)
Hola, ¿De casualidad en la documentación dice cuál es la base para codificación/decodificación utilizada?

Saber eso sería de gran ayuda...
:rolleyes:

vicvil 09-11-2015 16:38:44

Buena pregunta, pero la verdad la documentación no dice mucho, sólo dice que:

1.- Host : maullin.sii.cl
2.- Puerto: 443
3.- Tipo de encriptación: SSL

Se envía un xml en formato ISO-8859-1 y se recibe un xml con la respuesta.
Cuando veo la respuesta, sólo veo caracteres encriptados.

Neftali [Germán.Estévez] 09-11-2015 16:54:21

A veces se usa en las respuestas Base64.
Creo que eso no llega a encriptación, más que nada es un cambio de caracteres para evitar que los "caracteres extraños" provoquen problemas en las comunicaciones.

Se identifica fácil, porque tiene una pinta como esto:

---------------------------------------------------------------------------------------------------
QSB2ZWNlcyBzZSB1c2EgZW4gbGFzIHJlc3B1ZXN0YXMgW0JdQmFzZTY0Wy9CXS4gDQpDcmVvIHF1ZSBlc28gbm8gbGxlZ2EgYSBl bmNyaXB0YWNpw7NuLCBtw6FzIHF1ZSBuYWRhIGVzIHVuIGNhbWJpbyBkZSBjYXJhY3RlcmVzIHBhcmEgZXZpdGFyIHF1ZSBsb3Mg ImNhcmFjdGVyZXMgZXh0cmHDsW9zIiBwcm92b3F1ZW4gcHJvYmxlbWFzIGVuIGxhcyBjb211bmljYWNpb25lcy4=
---------------------------------------------------------------------------------------------------

Los caracteres son mayúsculas, minúsculas, números y algunos más de la parte baja de la tabla ascii (ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/). En algunos casos también se añade el =.

vicvil 09-11-2015 17:55:00

los caracteres que recibo son del tipo:

#$1F'<'#8#0#0#0#3'ÉÎÏεQ(K-*Î......#0#0#0#3

Neftali [Germán.Estévez] 09-11-2015 21:03:52

Cita:

Empezado por vicvil (Mensaje 499082)
los caracteres que recibo son del tipo:

#$1F'<'#8#0#0#0#3'ÉÎÏεQ(K-*Î......#0#0#0#3

Vale.
Pues eso no es Base64. :(

¿No vendrá algún documento con un formato concreto?
Eso es obligatorio que te lo aclare el proveedor del servicio, sino ya me dirás...

vicvil 18-11-2015 15:08:36

En eso estoy, tratando que me den pistas al respecto, pero el soporte es pésimo. Las personas que atienden no saben nada y generan reportes que se demoran semanas en responder

vicvil 20-11-2015 17:38:13

Bueno revisando el componente IdHTTP de Indy 9 me doy cuenta que regresa la codificación UTF 8, por lo que hay que decodificarlo. Esto al parecer en indy 10 con delphi 2007 en adelante es sencillo, pero yo tengo delphi5 y no trae un decodificador para UTF8.
¿Cómo podría hacer algo así?

vicvil 25-11-2015 15:25:05

Bueno para quien tenga problemas con lo mismo con el SII de Chile, el problema era que el archivo viene comprimido en formato gzip, por ello era que veía solo caracteres extraños. Esto claro no estaba indicado en la documentación.
Ahora tengo que arreglar el error que me viene dentro del archivo xml. Me espera un largo trabajo...

Ñuño Martínez 26-11-2015 11:27:39

Cita:

Empezado por vicvil (Mensaje 499828)
Bueno para quien tenga problemas con lo mismo con el SII de Chile, el problema era que el archivo viene comprimido en formato gzip, por ello era que veía solo caracteres extraños. Esto claro no estaba indicado en la documentación.

Normal que no diéramos con una solución. :mad: ¡Quéjate al responsable!


La franja horaria es GMT +2. Ahora son las 03:27:23.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi