Ja, das hatte ich schon entdeckt, auch den Kommentar
Zitat:
Delphi-Quellcode:
{ Can these be exposed when using Indy too?? }
property ConnectTimeout: Integer
read FConnectTimeout
write FConnectTimeout;
property SendTimeout: Integer
read FSendTimeout
write FSendTimeout;
property ReceiveTimeout: Integer
read FReceiveTimeout
write FReceiveTimeout;
Das Setzen der Timeouts erfolgt an einer einzigen Stelle (THTTPReqResp.Send).
Zitat:
Delphi-Quellcode:
if FConnectTimeout > 0 then
Check(not InternetSetOption(Request, INTERNET_OPTION_CONNECT_TIMEOUT, Pointer(@FConnectTimeout), SizeOf(FConnectTimeout)));
Ich habe eine Grep-Suche über die
Indy-Sourcen laufen lassen, InternetSetOption wurde nirgends gefunden, von daher gehe ich davon aus, dass es sich um WinInet handelt.
[edit] Eben stand ich noch am Abgrund, jetzt bin ich einen Schritt weiter
Delphi-Quellcode:
var
RIO: THTTPRIO;
{$IFDEF POSIX}
Handler: TIdIOHandler;
{$ENDIF}
begin
{$IFDEF POSIX}
Handler := nil;
{$ENDIF}
RIO := THTTPRIO.Create(nil);
try
{$IFDEF POSIX}
Handler := TIdIOHandler.MakeDefaultIOHandler(nil);
RIO.HTTPWebNode.IOHandler := Handler;
{$ENDIF}
RIO.HTTPWebNode.{$IFDEF POSIX}IOHandler.{$ENDIF}ConnectTimeOut :=
FConnectTimeOut;
{$IFNDEF POSIX}RIO.HTTPWebNode.SendTimeOut := FSendTimeOut; {$ENDIF}
RIO.HTTPWebNode.
{$IFDEF POSIX}IOHandler.ReadTimeOut{$ELSE}ReceiveTimeOut{$ENDIF} :=
FReceiveTimeOut;
try
FService := GetTestService(false, aURI, RIO);
Aaaaber... Zitat aus der
Indy-Hilfe:
Zitat:
ConnectTimeout is not used in TIdIOHandler, but is provided for compatibility purposes. ConnectTimeout allows a client using a socket-based IOHandler, like TIdIOHandlerStack, to
access the protocol stack to set the timeout value.
Use the ConnectTimeout property in the TIdTCPClient to set the connection timeout without specific
access to an IOHandler.
Ich werd noch wahnsinnig
[/edit]