You are not logged in.
Pages: 1
I try connect to my server by Indy 10 and OpenSSL library, connecting is established, but server not response to request.
lTCPClient: TIdTCPClient;
lSSLIOHandler : TIdSSLIOHandlerSocketOpenSSL;
begin
//create and configure TCPclient and SSL handler
lSSLIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
lSSLIOHandler.OnStatus := OnSSLStatus;
lSSLIOHandler.OnStatusInfo := OnSSLStatusInfo;
lSSLIOHandler.OnStatusInfoEx := OnSSLStatusInfoEx;
lTCPClient := TIdTCPClient.Create(nil);
lTCPClient.IOHandler := lSSLIOHandler;
lSSLIOHandler.SSLOptions.SSLVersions := [sslvSSLv3, sslvSSLv2, sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2];
lSSLIOHandler.SSLOptions.Mode := sslmClient;
lSSLIOHandler.SSLOptions.Method := sslvSSLv23;
lTCPClient.Host := edtServer.Text;
lTCPClient.Port := StrToUInt(edtPort.Text);
lSSLIOHandler.Host := edtServer.Text;
lSSLIOHandler.Port := StrToUInt(edtPort.Text);
//connect is established succesfuly
lTCPClient.Connect;
//write HTTP request (copy from other mORMot client http log)
lTCPClient.IOHandler.WriteLn('GET /Companies/Timestamp HTTP/1.1');
lTCPClient.IOHandler.WriteLn('Cache-Control: no-cache');
lTCPClient.IOHandler.WriteLn('Connection: Keep-Alive');
lTCPClient.IOHandler.WriteLn('Pragma: no-cache');
lTCPClient.IOHandler.WriteLn('Content-Type: application/json; charset=UTF-8');
lTCPClient.IOHandler.WriteLn('Accept: */*');
lTCPClient.IOHandler.WriteLn('User-Agent: Mozilla/5.0 (Windows; mORMot 1.18 TWinINet)');
lTCPClient.IOHandler.WriteLn('Host: ' + edtServer.Text + ':' + edtPort.Text);
lTCPClient.IOHandler.WriteLn('Accept-Encoding: gzip, deflate');
//read data from server... waiting to end of timeout, response size is zero bytes
lReadData := lTCPClient.IOHandler.AllData;
in last line client waiting 120sec (timeout) and break waiting without receive any data.
From my Indy SSL log I get info that connection is established properly:
SSL StatusInfoEx SSL version: TLS1.2; type: [Handshake Done], Msg: [SSL negotiation finished successfully]; _type: [SSL_ST_CONNECT]
SSL StatusInfo, msg:: SSL status: "SSL negotiation finished successfully"
SSL StatusInfo, msg:: Cipher: name = ECDHE-RSA-AES256-GCM-SHA384; description = ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD
; bits = 256; version = TLSv1/SSLv3;
What I'm doing wrong?
Offline
Server work on HTTPAPI, on 8090 port and use SSL. Interface based sevice. Standard mORMot client work with server without problem.
from server log:
2017-12-03 17:10:43.45 http ss.Core.Server.Http.TssHTTPServer(0857C340) {"THttpApiServer(0853DCB0)":{"Cloned":false,"RegisteredUrl":"","HTTPQueueLength":1000,"MaxBandwidth":-1,"MaxConnections":-1,"APIVersion":"HTTP API 2.0","ServerName":"mORMot (Windows)","ProcessName":""}} initialized for
2017-12-03 17:11:38.22 http ss.Core.Server.Http.TssHTTPServer(0857C340) http.sys registration of https://+:8090/Companies
2017-12-03 17:11:38.22 http ss.Core.Server.Http.TssHTTPServer(0857C340) {"TssHTTPServer(0857C340)":{}}.AddServer({"TCompaniesRest(0822F7B0)":{"NoAJAXJSON":false,"Options":[],"HandleAuthentication":false,"BypassORMAuthentication":[],"Stats":{"StartDate":"2017-12-03 16:11:38","Success":0,"ServiceMethod":0,"ServiceInterface":0,"OutcomingFiles":0,"CurrentThreadCount":0,"Created":0,"Read":0,"Updated":0,"Deleted":0,"ClientsCurrent":0,"ClientsMax":0,"CurrentRequestCount":0,"Input":{"Bytes":0,"Text":"0 B"},"Output":{"Bytes":0,"Text":"0 B"},"InputThroughput":{"BytesPerSec":0,"Text":"0 B/s"},"OutputThroughput":{"BytesPerSec":0,"Text":"0 B/s"},"Processing":false,"TaskCount":0,"TotalTime":{"MicroSec":0,"Text":"0us"},"LastTime":{"MicroSec":0,"Text":"0us"},"MinimalTime":{"MicroSec":0,"Text":"0us"},"AverageTime":{"MicroSec":0,"Text":"0us"},"MaximalTime":{"MicroSec":0,"Text":"0us"},"PerSec":0,"Errors":0,"LastError":null},"StatLevels":["mlTables","mlMethods","mlInterfaces","mlSQLite3"],"StaticVirtualTableDirect":true,"ServerTimeStamp":135405044454}},Root=Companies,Port=api.serveraddress.pl:8090,Public=api.serveraddress.pl:8090)=true
Request from standard mORMot client is served properly:
2017-12-03 17:12:21.00 srvr ss.Rest.Companies.TCompaniesRest(0822F7B0) GET Companies/TimeStamp SOA-Method -> 200 with outlen=12 in 524 us
but request from IE11 (call on host where server is run, Windows Server 2012) not respond too:
http://api.serveraddress.pl:8090/Companies/Timestamp
ps. serveraddress is fake address, I can send real address in priv post
Offline
From SlimJet web browser I get response...
-------------
when I modify in IE address from http:// to https:// then IE work too.
Now address is:
https://api.serveraddress.pl:8090/Companies/Timestamp
but requesting via Indy TCP still not work.
Last edited by jaclas (2017-12-03 18:12:12)
Offline
I can't found Indy forum, links are dead... where is located this forum? thx for help
Offline
The Indy forum is http://forums2.atozed.com/viewforum.php?f=7, but is not accessible right now.
Delphi XE4 Pro on Windows 7 64bit.
Lazarus trunk built with fpcupdelux on Windows with cross-compile for Linux 64bit.
Offline
The Atozed forum has been offline for more than a year.
The active Indy forum is in the Winsock section of the Embarcadero forum at https://forums.embarcadero.com/forum.jspa?forumID=74
JD
Offline
Thx JD!
Offline
Pages: 1