Timeout w HTTPRIO

0

Witam
Mam napisaną aplikację WebServices w Delphi 6 opartą o komponent HTTPRIO.
Niestety gdy przesyłane dane są zbyt duże, to połączenie zrywa po 30 sekundach.
Czy da się jakoś zwiększyć timeout w tym przypadku?

user image
user image

1

ustaw wcześniej w kodzie timeouty
spróbuj najpierw

    HTTPRIO.HTTPWebNode.SendTimeout := 120000;
    HTTPRIO.HTTPWebNode.ConnectTimeout := 120000;
    HTTPRIO.HTTPWebNode.ReceiveTimeout := 120000;

a jak nie podziała (w którejś wersji Delphi był błąd) to to powinno dać radę

InternetSetOption(nil, INTERNET_OPTION_CONNECT_TIMEOUT, Pointer(@conntimeout), SizeOf(conntimeout));
InternetSetOption(nil, INTERNET_OPTION_SEND_TIMEOUT, Pointer(@sendtimeout), SizeOf(sendtimeout));
InternetSetOption(nil, INTERNET_OPTION_RECEIVE_TIMEOUT, Pointer(@recvtimeout), SizeOf(recvtimeout));

czasy są w milisekundach

0

Niestety moje HTTPRIO nie ma takich opcji, jak SendTimeout, ConnectTimeout i ReceiveTimeout.
user image
user image

Może idzie jakoś ściągnąć nowszą wersję tego HTTPRIO do Delphi 6, gdzie te opcje byłyby już dostępne?

Jeśli chodzi o drugie rozwiązanie, to też nie wyszło...
user image

0

do ostatniego

uses wininet;
0

Jesteś wielki!
Już chciałem ci odpisać, że nie działa, bo kod ten wstawiłem pod jeden z przycisków i nadal zrywało po 30 sekundach.
Jednak gdy wstawiłem go do funkcji HTTPRIOBeforeExecute, to zadziałało!

procedure Tf_qp.HTTPRIOBeforeExecute(const MethodName: String;
  var SOAPRequest: WideString);
var
 timeout:integer;
begin
 timeout:=120000;
 InternetSetOption(nil, INTERNET_OPTION_CONNECT_TIMEOUT, Pointer(@timeout), SizeOf(timeout));
 InternetSetOption(nil, INTERNET_OPTION_SEND_TIMEOUT, Pointer(@timeout), SizeOf(timeout));
 InternetSetOption(nil, INTERNET_OPTION_RECEIVE_TIMEOUT, Pointer(@timeout), SizeOf(timeout));
end;

Jak przyjedziesz kiedyś do Rybnika, to stawiam piwo :)
Nawet nie wiesz, jak wielkie to ma znaczenie dla działania naszej firmy :)

0

OK :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1