Mostrando entradas con la etiqueta Delphi WebServices Certificados. Mostrar todas las entradas
Mostrando entradas con la etiqueta Delphi WebServices Certificados. Mostrar todas las entradas

miércoles, 20 de junio de 2012

WebServices y certificados vencidos

Perdí varias horas de pruebas y repruebas por un problema que ya había tenido pero que tarde días en recordar. Según algunos informes, internet paso a ser una extensión de nuestra memoria y en general muchas situaciones se olvidan rápidamente para dejar lugar a cuestiones mas inmediatas.
El problema era la imposibilidad de consumir un servicio https y que tenia un certificado vencido. Tarde mucho tiempo en recordad la solución como para dejarla pasar y no registrarla en el blog.
La cuestion se resuelve seteando una simple opcion que no esta tan visible ni es tan accesible asi que aqui el codigo con la explicacion.

var
  r:Integer;
  msg:string;
  ss:ServiceSoap;
  RIO : THTTPRIO;
begin
  { Place thread code here }
  //Creo un componentes http RIO
  RIO := THTTPRIO.Create(nil);
//Aca lo importante, colocar la opcion soIgnoreInvalidCerts para que haga caso omiso de certificados  //vencidos y que siga trabajando
RIO.HTTPWebNode.InvokeOptions :=
            [soPickFirstClientCertificate ,soIgnoreInvalidCerts, soAutoCheckAccessPointViaUDDI];

  //Pasar el componentes THTTPRIO como parametro, y listo funciona!!
  ss :=GetServiceSoap(false, defURL, RIO);

  try

    r := ss.MiMetodo('Hola mundo')

...................
...................