1

I'm porting an application from Delphi 2010 to Delphi 11 and there is a call to a SOAP-Webservice.

I used the IDE WSDL Import Tool to generate the soap delphi units (for both Delphi versions with the respective tool).

In Delphi 2010 I used a .p12 client certificate but it seems that this isn't working anymore in Delphi 11. So now I use a .p7b client certificate like in the code below. (I've tried several different approaches with the .p12 too)

var
  rio: THTTPRIO;
  soapServicePdf: PdfWS;
  soapResponsePdf: previewPdfResponse;
  clientCert: TClientCertExt;

begin
  rio := THTTPRIO.Create(nil);
  TClientCertExt(rio.HTTPWebNode.ClientCertificate).FileName := 'key.pb7';
  TClientCertExt(rio.HTTPWebNode.ClientCertificate).Password := 'myPass';
  TClientCertExt(rio.HTTPWebNode.ClientCertificate).CertName := 'certname';
  soapServicePdf := GetServiceWS(false, url, rio);
  soapResponsePdf := soapServicePdf.getPdfWS(param1, param2);
end;

Now I get an error message when requesting the webservice that says "Im Clientzertifikat sind keine Anmeldeinformationen enthalten" (translation: "No credentials are included in the client certificate"). After all the other errormessages with the different approaches this is the one that seems which is the closest to work.

What do I need to do for making a SOAP-Request (when I have an wsdl) to a webservice with a client certificate in Delphi 11? (I have the certificate in the following formats: DER (Binary), PEM (Base64), P7B, PFX and JKS)

HopFlash
  • 106
  • 1
  • 8

0 Answers0