Hi,
ich rufe von einer Datenquelle über http JSON-daten ab. Bei einigen kleineren Statusinformation klappt das auch soweit wie erwartet.
Jetzt will ich eine JSON-Liste abrufen, die etwas länger ist. Firefox benötigt mitunter 10 Sekunden.
Ich nutze Systen.Net.HttpClientComponent.TNetHTTPClient. Dieser bricht nach ablauf des Timeouts immer mit dem Fehler 12030. Wenn die verwendete
URL aber in den Browser kopiere, dann läuft das einwandfrei.
Einer eine Idee woran das liegen könnte?
Delphi-Quellcode:
function TDeviceDataThread.RequestServices(
var ResponseJSON:
string): Integer;
var
httpClient: TNetHTTPClient;
Response: IHTTPResponse;
SS: TStringStream;
LogText:
string;
url:
string;
begin
httpClient:=TNetHTTPClient.Create(
nil);
SS:=TStringStream.Create;
try
try
httpClient.ConnectionTimeout:=600000;
httpClient.ResponseTimeout:=600000;
url:='
http://'+FUser+'
:'+FPass+'
@'+FIP+'
:'+FPort.ToString+'
/api/getallservices';
Response:=httpClient.get(
url, SS);
SS.Position:=0;
LogText:='
JSON: '+SS.DataString;
ResponseJSON:=SS.DataString;
Result:=Response.StatusCode;
except
on E:
Exception do
begin
LogText:='
Fehler getallservices: '+E.
Message+'
'+LogText;
DoLog(LogText);
Result:=403;
end;
end;
finally
httpClient.Free;
end;
end;