Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-01-2024
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 7
nincillo Va por buen camino
PRESVET: Definición del servicio web de comunicación de prescripciones veterinarias

Pues eso, que como no era suficiente pegarme con el famoso VeriFactu ahora me toca pegarme con la actualización del PRESVET que tengo operativo en algunos clientes.

Hasta ahora lo tenía por el método REST pero como ahora estaba ya metido con los SOAP y la importación de los WSDL, me he decidido a intentar cambiar de manera de consumir los servicios.

El manual de instrucciones se puede descargar de aquí: https://www.mapa.gob.es/es/ganaderia...m30-485047.pdf. Por desgracia es una versión obsoleta. La versión actualizada no se de donde se puede descargar. Yo la tengo porque me la enviaron por email, pero es demasiado pesada para poder adjuntarla. ¿Es posible subirla al FTP del foro o algo así? Son poco más de dos megas.

Con las pruebas que estoy haciendo, me encuentro con dos problemas:
1) No tengo muy claro como indicar el usuario y la contraseña de acceso al servicio (aún estoy pendiente de que me las envien).
2) Por otro lado, mientras consigo esas credenciales, estoy intentando hacer peticiones para al menos obtener un error de acceso o algo así, pero lo único que consigo es un error de TimeOut.

La url actualizada del wsdl es: https://servicio.mapa.gob.es/wspresv...scripcion.wsdl


Si hago las pruebas con el SOAPUi:

Si hago la petición:
Código:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">
   <soap:Header/>
   <soap:Body>
      <tem:EstaActivo/>
   </soap:Body>
</soap:Envelope>
La respuesta es:
Código:
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
   <s:Header>
      <a:Action s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/soap/fault</a:Action>
   </s:Header>
   <s:Body>
      <s:Fault>
         <s:Code>
            <s:Value>s:Sender</s:Value>
            <s:Subcode>
               <s:Value xmlns:a="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">a:InvalidSecurity</s:Value>
            </s:Subcode>
         </s:Code>
         <s:Reason>
            <s:Text xml:lang="es-ES">An error occurred when verifying security for the message.</s:Text>
         </s:Reason>
      </s:Fault>
   </s:Body>
</s:Envelope>
Si hago esa misma petición desde Delphi, lo único que consigo es un timeout después de un rato.

A ver si a alguien se le ocurre algo.

Gracias.
Responder Con Cita
  #2  
Antiguo 13-01-2024
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 7
nincillo Va por buen camino
Creo que he descubierto el motivo del timeout, lo que no se es como solucionarlo en la llamada desde Delphi.

Seguí haciendo pruebas desde SOAPUi y unas veces me funcionaba bien y otras me daba error de timeout. Al final me di cuenta que el timeout dependía de si tenía activado o no el check de Enable ws-a addresing. Hace falta que esté activado.

¿Cómo activo esa opción al hacer la llamada desde Delphi?

Gracias.
Responder Con Cita
  #3  
Antiguo 13-01-2024
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por nincillo Ver Mensaje
... El manual de instrucciones se puede descargar de aquí: https://www.mapa.gob.es/es/ganaderia...m30-485047.pdf. Por desgracia es una versión obsoleta. La versión actualizada no se de donde se puede descargar. Yo la tengo porque me la enviaron por email, pero es demasiado pesada para poder adjuntarla. ¿Es posible subirla al FTP del foro o algo así? Son poco más de dos megas...
Contacto por mensaje privado con Neftali o a mí mismo para subirlo.
Responder Con Cita
  #4  
Antiguo 13-01-2024
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 7
nincillo Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Contacto por mensaje privado con Neftali o a mí mismo para subirlo.
Hecho.
Muchas gracias.
Responder Con Cita
  #5  
Antiguo 13-01-2024
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 7
nincillo Va por buen camino
He conseguido los logs del SoapUI enviando la peticitón tanto activando la opción como sin activarla.

Activada:
Código:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">
   <soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"><wsa:Action>http://tempuri.org/IPresVetComunicacionPrescripcion/EstaActivo</wsa:Action></soap:Header>
   <soap:Body>
      <tem:EstaActivo/>
   </soap:Body>
</soap:Envelope>
Sin Activar

Código:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">
   <soap:Header/>
   <soap:Body>
      <tem:EstaActivo/>
   </soap:Body>
</soap:Envelope>
Responder Con Cita
  #6  
Antiguo 14-01-2024
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 7
nincillo Va por buen camino
Cita:
Empezado por nincillo Ver Mensaje
Pues eso, que como no era suficiente pegarme con el famoso VeriFactu ahora me toca pegarme con la actualización del PRESVET que tengo operativo en algunos clientes.

Hasta ahora lo tenía por el método REST pero como ahora estaba ya metido con los SOAP y la importación de los WSDL, me he decidido a intentar cambiar de manera de consumir los servicios.

El manual de instrucciones se puede descargar de aquí: https://www.mapa.gob.es/es/ganaderia...m30-485047.pdf. Por desgracia es una versión obsoleta. La versión actualizada no se de donde se puede descargar. Yo la tengo porque me la enviaron por email, pero es demasiado pesada para poder adjuntarla. ¿Es posible subirla al FTP del foro o algo así? Son poco más de dos megas.

Con las pruebas que estoy haciendo, me encuentro con dos problemas:
1) No tengo muy claro como indicar el usuario y la contraseña de acceso al servicio (aún estoy pendiente de que me las envien).
2) Por otro lado, mientras consigo esas credenciales, estoy intentando hacer peticiones para al menos obtener un error de acceso o algo así, pero lo único que consigo es un error de TimeOut.

La url actualizada del wsdl es: https://servicio.mapa.gob.es/wspresv...scripcion.wsdl


Si hago las pruebas con el SOAPUi:

Si hago la petición:
Código:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">
   <soap:Header/>
   <soap:Body>
      <tem:EstaActivo/>
   </soap:Body>
</soap:Envelope>
La respuesta es:
Código:
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
   <s:Header>
      <a:Action s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/soap/fault</a:Action>
   </s:Header>
   <s:Body>
      <s:Fault>
         <s:Code>
            <s:Value>s:Sender</s:Value>
            <s:Subcode>
               <s:Value xmlns:a="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">a:InvalidSecurity</s:Value>
            </s:Subcode>
         </s:Code>
         <s:Reason>
            <s:Text xml:lang="es-ES">An error occurred when verifying security for the message.</s:Text>
         </s:Reason>
      </s:Fault>
   </s:Body>
</s:Envelope>
Si hago esa misma petición desde Delphi, lo único que consigo es un timeout después de un rato.

A ver si a alguien se le ocurre algo.

Gracias.
Editado:
Gracias a Casimiro ya se puede descargar el fichero de aquí: https://terawiki.clubdelphi.com/Otro...embre_2023.pdf
Responder Con Cita
  #7  
Antiguo 17-01-2024
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 7
nincillo Va por buen camino
Ejemplo de conexión con .NET y C#

Ejemplo conexión .Net y C#
Y en el cliente .net será necesario establecer la siguiente configuración:
Código:
<system.serviceModel>
  <bindings>
    <wsHttpBinding>
      <binding name="BasicEndpoint">
        <security mode="TransportWithMessageCredential">
           <transport clientCredentialType="None" />
           <message clientCredentialType="UserName" establishSecurityContext="false" />
        </security>
      </binding>
    </wsHttpBinding>
  </bindings>
  <client>
    <endpoint address="https://servicio.mapa.gob.es/wspresvetcomunicacion/wspresvetcomunicacion.svc"
        binding="wsHttpBinding" bindingConfiguration="BasicEndpoint"
        contract="PresVetComunicacionPrescripcion.IPresVetComunicacionPrescripcion"
        name="BasicEndpoint" />
  </client>
</system.serviceModel>


static void Main(string[] args)
{
      using (PresVetComunicacionPrescripcionClient comunicacionPrescripcion = new PresVetComunicacionPrescripcionClient())
{
      comunicacionPrescripcion.ClientCredentials.UserName.UserName = "usuario";
      comunicacionPrescripcion.ClientCredentials.UserName.Password = "clave";
      System.Net.ServicePointManager.Expect100Continue = false;
      string resultado = comunicacionPrescripcion.EstaActivo();
      Console.Write(resultado);
      Console.ReadLine();
}
}
¿Alquien podría "traducirlo" a Delphi?. Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Definición de una función Angel.Matilla C++ Builder 5 12-12-2018 21:09:38
Como arrancar o parara un servicio en funcion de otro servicio ?? QuarkBcn API de Windows 12 15-06-2011 14:46:11
Definición de Globalización rafita Humor 6 17-01-2008 23:44:32
Comunicacion con Servicio dieleo Varios 4 30-10-2007 16:11:52
Definición matemática Héctor Randolph Humor 1 04-01-2005 16:44:02


La franja horaria es GMT +2. Ahora son las 15:32:50.


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
Copyright 1996-2007 Club Delphi