FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error WS - Sin respuesta.
Buenas a todo@s...
Estoy teniendo un problema que me trae por el camino de la amargura.... En el en mensaje : https://www.clubdelphi.com/foros/sho...97&postcount=7 del hilo : https://www.clubdelphi.com/foros/showthread.php?t=95967 puse un ejemplo de utilización del servicio de validación de NIF/CIFs de la AEAT. Me funciona perfectamente en muchos equipos que tengo en clientes, pero en varios de ellos no hay forma que funcione y me devuelve el error: El documento XML debe tener un elemento de nivel superior Line: 0 es decir no hay respuesta... Me copio los datos en mi equipo (ejecutables, certificados etc... ) y funciona perfectamente... No entiendo que puede estar pasando... ¿alguna pista? gracias. |
#2
|
||||
|
||||
A lo mejor si pones una copia del xml para que le echemos un vistazo, si es posible.
Normalmente, por lo que he visto en algunos casos, es porque no está bien estructurado.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
Si has copiado los mismos ficheros en otro equipo, y la cosa no funciona, puede ser indicativo de que sea un problema de diferente configuración en los diferentes equipos.
Todo el tema de XML, según el código que estés utilizando, se apoya en DLLs y configuraciones del equipo (IE, protocolos,...) Revisa y compara versiones del sistema operativo, versiones de protocolos,...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
|||
|
|||
Cita:
Capturo la respuesta así: Al httpRio asigno el evento OnAfterExecute y lo defino así...
pero siempre está vacío... Edito: Cuando responde todo va bien y sí llego a capturar el mensaje de restuesta Código:
<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><env:Body><VNifV2Sal:VNifV2Sal xmlns:VNifV2Sal="http://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/burt/jdit/ws/VNifV2Sal.xsd"><VNifV2Sal:Contribuyente><VNifV2Sal:Nif>XXXXXX</VNifV2Sal:Nif><VNifV2Sal:Nombre>XXXXX</VNifV2Sal:Nombre><VNifV2Sal:Resultado>IDENTIFICADO</VNifV2Sal:Resultado></VNifV2Sal:Contribuyente></VNifV2Sal:VNifV2Sal></env:Body></env:Envelope> Última edición por iMia fecha: 10-03-2023 a las 18:06:56. Razón: Poner etiquetas [delphi] [/delphi] al código. |
#5
|
||||
|
||||
Puede ser que no exista el nif que se esté consultando.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#7
|
|||
|
|||
Cita:
Creo que podría venir por aquí... He conseguido llegar a que si ejecuto desde dentro del entorno de Delphi con un Run, funciona perfectamete, pero lanzando el ejecutable desde el propio S.O. , es cuando no hay respuesta... Es como si el capicom o las librerias de openssl (libeay32.dll o ssleay32.dll) no fuesen las correctas: Desde Delphi está utilizando unas y desde el ejecutable, otras (o algo así) y no incluya bien el certificado o no sé exactamente qué pasa con la llamada y por eso no hay respuesta... pero por otra parte, cuando la llamada no es correcta, el servidor debería responder con error, pero es que no hay error, simplemente no hay respuesta... |
#8
|
|||
|
|||
Cita:
|
#9
|
||||
|
||||
Ahí en el menaje de respuesta tienes un "NO IDENTIFICADO"
Tendrías que saber a qué se refiere. Si es al certificado, si es por el DNI,... Si está relacionado con librerías (SSL) deberías buscar en tu sistema a ver si tienes más de una versión. No sea que según desde dónde lo ejecutas te esté cogiendo unas u otras (path).
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#10
|
|||
|
|||
Cita:
El tema de las DLL tampoco lo tengo claro, por que solo tengo unas... sigo con esta linea de investigación a ver si veo algo... Gracias a todos por mirarlo y perder unos minutos a pensar en ello... |
#11
|
|||
|
|||
Sigo con el tema DLLs...
Desde el entorno de programación funciona OK, pero desde el S.O. llamando al ejecutable no. ¿Es relamente problema de las dll's...? ni libeay32.dll ni ssleay32.dll son llamadas desde mi proceso (Ejecutable desde SO) Hasta ahora pensaba utilizaba las dlls (libeay32.dll y ssleay32.dll) pero ahora creo que no las utiliza... por eso al copiar varias versiones de dll de libeay32 y ssleay32 junto al ejecutable, pasa de ellas... ¿No seran otras dlls? P.D.: Cómo saber qué DLL se están llamando... (sea del SO o del entrono de programación) desde liena de comandos: C:\Windows\System32\perfmon.exe /res -> Pestaña CPU y seleccionar el proceso y las dlls aparecen en el apartado "módulos Asociados" vaya lio.... |
#12
|
||||
|
||||
Si estás usando las Indy (por ejemplo) sí usa esas DLL's. Si estás utilizando los componentes REST creo que no, porque hace uso de lo que tiene el sistema operativo.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#13
|
|||
|
|||
Cita:
Estos son los uses del maiForm
|
#14
|
|||
|
|||
Más pruebas...
He instalado Fiddler... un snifer de http, para ver las comunicaciones.... Si lo hago ejecutando la app desde el SO, Fiddler detecta el request: a sede.agenciatributaria:443 HEADER: User-Agent: CodeGear SOAP 1.3con una respuesta: HEADER FiddlerGateway: Directpero en el RAW del request aparece esto: Código:
CONNECT www1.agenciatributaria.gob.es:443 HTTP/1.0 User-Agent: CodeGear SOAP 1.3 Host: www1.agenciatributaria.gob.es:443 Content-Length: 0 Connection: Keep-Alive Pragma: no-cache After the client received notice of the established CONNECT, it failed to send any data. Ejecutando desde el IDE el mismo header: User-Agent: CodeGear SOAP 1.3pero el raw del mensaje: Código:
CONNECT www1.agenciatributaria.gob.es:443 HTTP/1.0 User-Agent: CodeGear SOAP 1.3 Host: www1.agenciatributaria.gob.es:443 Content-Length: 0 Connection: Keep-Alive Pragma: no-cache A SSLv3-compatible ClientHello handshake was found. Fiddler extracted the parameters below. Version: 3.3 (TLS/1.2) Random: 64 12 C3 D3 CD 93 AE CB 92 35 3F 92 27 60 63 C1 93 D9 94 1B E6 35 9E FB BA 33 D6 98 B1 3A CD ED "Time": 01/08/2082 4:26:44 SessionID: empty Extensions: server_name www1.agenciatributaria.gob.es status_request OCSP - Implicit Responder supported_groups x25519 [0x1d], secp256r1 [0x17], secp384r1 [0x18] ec_point_formats uncompressed [0x0] signature_algs rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha1, ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_sha1, dsa_sha1, rsa_pkcs1_sha512, ecdsa_secp521r1_sha512 SessionTicket empty extended_master_secret empty renegotiation_info 00 Ciphers: [C02C] TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 [C02B] TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 [C030] TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 [C02F] TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 [C024] TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 [C023] TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 [C028] TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 [C027] TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 [C00A] TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA [C009] TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA [C014] TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA [C013] TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA [009D] TLS_RSA_WITH_AES_256_GCM_SHA384 [009C] TLS_RSA_WITH_AES_128_GCM_SHA256 [003D] TLS_RSA_WITH_AES_256_CBC_SHA256 [003C] TLS_RSA_WITH_AES_128_CBC_SHA256 [0035] TLS_RSA_WITH_AES_256_CBC_SHA [002F] TLS_RSA_WITH_AES_128_CBC_SHA [000A] SSL_RSA_WITH_3DES_EDE_SHA Compression: [00] NO_COMPRESSION Es como si no se enviase nada a parte del handshake de conexión... (ojo, el Content-Length: 0 de la respuesta raw de conexión no tiene nada que ver, ya que cuando se conecta correctamente, también sale a 0...) por que la respuesta del handshake es SSL3 "SSLv3-compatible ClientHello handshake was found" y el cliente no lo reconoce ¿? Lo que sí, es que cuando se conecta bien, el tamaño total del request es de 1858 bytes (187 del header y 1671 del body) pero cuando lo hago desde el SO, el tamaño del request es de 276 bytes (187 del header y 89 del body). El request se hace en dos partes, uno con la identificación (CONNECT) y otro con el request puramente dicho (POST). Parece que desde el ide, despés del Connect, puede hacer bien el POST, en cambio desde el SO, despues del Connect, no hace el Post... o ya no sé ni lo que digo... |
#15
|
||||
|
||||
Revisa los parámetros de SSL.
Haz pruebas con diferentes versiones.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#16
|
|||
|
|||
Cita:
He probado de activar Manualmente TLS 1.2 en el registro, y SSL 3... y nada... He probado copiando diferentes versiones de libeay32 y ssleay32 junto al ejecutable y como si nada... No sé si las utiliza (yo diría que no, por que comprobando las dlls que abre la app, no lo hace... ) y si las utiliza ni cómo ni cuando... |
#17
|
|||
|
|||
Arreglado!!!!!!!!
El problema estaba en la forma de cargar el certificado con CAPICOM... Tenia que ser:
Última edición por Neftali [Germán.Estévez] fecha: 16-03-2023 a las 15:00:51. Razón: Añadir TAGs al código |
#18
|
||||
|
||||
Gracias por comentar la solución.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Respuesta al ListBox | Dannell | Varios | 5 | 28-11-2012 20:30:51 |
Tiempos de Respuesta | Maury Manosalva | MySQL | 2 | 01-02-2007 18:59:46 |
mensaje de respuesta a error | jhcaboverde | Varios | 1 | 23-01-2007 19:18:53 |
Respuesta | danytorres | Varios | 2 | 16-07-2003 21:55:43 |
|