[DUG] Http help

Cameron Hart Cameron.Hart at flowsoftware.co.nz
Fri Feb 26 11:36:34 NZDT 2010


Just sent this with attached dll but the list doenst like it as its too
big so you will have to find your own Open SSL dlls....

 

You get 'Invalid IOHandler' because you have not applied a SSL handler
to your idHTTP object, yet you are posting to a HTTPS address.  The bits
of code you need are below

 

 

Uses IdSSLOpenSSL, IdSSL

 

SSLIOHandler: TIdSSLIOHandlerSocketOpenSSL;

 

function SSLIOHandlerVerifyPeer(Certificate: TIdX509; AOk: Boolean;
ADepth: Integer): Boolean;

begin

  Result := True;

end;

 

procedure SSLIOHandlerGetPassword(var Password: String);

begin

  Password := '';

end;

 

 

SSLIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);  //was Self
6/6/06

SSLIOHandler.MaxLineAction := maSplit;

 

SSLIOHandler.OnVerifyPeer := SSLIOHandlerVerifyPeer;

SSLIOHandler.OnGetPassword := SSLIOHandlerGetPassword;

 

  SSLIOHandler.SSLOptions.RootCertFile := RootCertificate;

  SSLIOHandler.SSLOptions.KeyFile := SSLClientKeyFile;

  SSLIOHandler.SSLOptions.CertFile := SSLClientCertFile;

  SSLIOHandler.SSLOptions.Method := IndySSLTypeArray[FSSLCLientType];

  SSLIOHandler.SSLOptions.Mode := sslmUnassigned;  //sslmClient;

  SSLIOHandler.SSLOptions.VerifyMode := [sslvrfPeer];

 

HTTP.IOHandler := SSLIOHandler

 

 

The hard part is getting the correct ssl dlls for the version of indy
you have.  The attached work for me with indy 10.

 

 

* Please note I will be on leave from Monday 8th March through to
Wednesday 24th March. For support during this time please contact 
support at flowsoftware.co.nz <mailto:support at flowsoftware.co.nz> or 09 476
3577 

 

Cameron Hart Development Manager 

	Flow Software Limited 

 

		 

	PO Box 305-237, Triton Plaza 

P 

+64 9 476 3579 

	Auckland 0757, New Zealand 

M 

+64 21 222 3569 

	www.flowsoftware.co.nz <http://www.flowsoftware.co.nz> 

E 

cameron.hart at flowsoftware.co.nz <mailto:cameron.hart at flowsoftware.co.nz>


 

This message is intended for the addressee named above. It may contain
privileged or confidential information. If you are not the intended
recipient of this message you must not use, copy, distribute or disclose
it to anyone. 

  P Please consider the environment before printing this email 

 

From: delphi-bounces at delphi.org.nz [mailto:delphi-bounces at delphi.org.nz]
On Behalf Of Robert martin
Sent: Friday, 26 February 2010 11:13 a.m.
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] Http help

 

Hi Guys

I had imported a WSDL file and built a soap service to send data to a
web service.  Unfortunately there is a bug in the WSDL that impacts
delphi but seems to be ignored in Microsoft tools (it really is a
problem with the wsdl file).  Anyway since it is a simple job I thought
it might be quicker to fix by just removing the soap and building the
XML manually and posting it with idHttp.  

However I cant get it to work !  When I try and post my test xml to the
web serivce I get an 'Invalid IOHandler' message in the app.  I have no
ioHandler defined but that works fine in my other apps where I post to
php based web services.  I am sure it is just some weird indy bug but I
am under a huge deadline and need to sort this.  Any help would be
greatly appreciated.

code follows (this is quick and dirty proof of concept code)

var
    sl                  : TStringList;
    PostDataStream      : TStringStream;
    SendStream      : TStringStream;
begin
    PostDataStream  := TStringStream.Create('');
    sl := TStringList.Create;
    try
        IdHTTP.Request.Username := '9313527067946306';
        IdHTTP.Request.Password := 'passdfsw9634306';
        IdHTTP.ReadTimeout := 5000;

        sl.LoadFromFile('E:\Work\Test post\TestRequest.XML');
        SendStream      := TStringStream.Create(sl.text);


        IdHTTP.Post('
https://uateclonline.nzpost.co.nz/eclonlinewebnowse/Services.asmx',
SendStream, PostDataStream);  //Error here 

        ShowMessage(PostDataStream.DataString);
    finally
        sl.Free;
        PostDataStream.Free;
        SendStream.Free;
    end;








-- 



Robert Martin

Software development manager

 

Chreos

www.chreos.co.nz

Ph +64 03 377-0495

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserver.123.net.nz/pipermail/delphi/attachments/20100226/c44fc3c4/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/jpeg
Size: 649 bytes
Desc: image001.jpg
Url : http://listserver.123.net.nz/pipermail/delphi/attachments/20100226/c44fc3c4/attachment-0002.jpe 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/jpeg
Size: 4211 bytes
Desc: image002.jpg
Url : http://listserver.123.net.nz/pipermail/delphi/attachments/20100226/c44fc3c4/attachment-0003.jpe 


More information about the Delphi mailing list