Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: TCP connect an definiertem Host und Port mit wählbaren Timeouts

  Alt 17. Dez 2018, 08:50
Hilft dir das weiter?

Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}


uses
  System.SysUtils,
  System.Net.HttpClient;

function IsOnline(const ARemoteAddress: string): Boolean;
var
  HttpClient: THTTPClient;
  HttpResponse: IHTTPResponse;
begin
  Result := False;
  HttpResponse := nil;

  HttpClient := THTTPClient.Create;
  try
    try
      // Hier wird der TimeOut gesetzt!
      HttpClient.ConnectionTimeout := 5000;

      HttpResponse := HttpClient.Get(ARemoteAddress);
      if Assigned(HttpResponse) then
      begin
        // andere StatusCodes können ebenso gültig sein, entsprechend anpassen!
        Result := (HttpResponse.StatusCode = 200) and
          (HttpResponse.ContentStream.Size > 512); // in Byte. Passenden Wert einsetzen!
      end;
    except
      on E: Exception do
      begin
        Result := False;
      end;
    end;
  finally
    HttpClient.Free;
  end;
end;

begin
  try
    // siehe hier: https://www.predic8.de/soap/blz-webservice.htm

    // Beispielaufruf. Hier wird auf die Existenz der WSDL geprüft.
    Writeln(IsOnline('http://www.thomas-bayer.com/axis2/services/BLZService?wsdl'));

    Readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;

end.
  Mit Zitat antworten Zitat