Sample code for 30+ languages & platforms
Lazarus Pascal

Example: Http.ExtractMetaRefreshUrl method

Demonstrates the ExtractMetaRefreshUrl method.

Chilkat Lazarus Pascal Downloads

Lazarus Pascal
program ChilkatDemo;

// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  SysUtils,
  CkDllLoader,
  Chilkat.StringBuilder,
  Chilkat.Http;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  success: Boolean;
  http: THttp;
  sb: TStringBuilder;
  bCrlf: Boolean;
  url: string;

begin
  success := False;

  http := THttp.Create;

  //  Sample HTML with a META refresh.

  //  <!DOCTYPE html>
  //  <html lang="en">
  //  <head>
  //    <meta charset="utf-8" />
  //    <meta http-equiv="refresh" content="5; url=https://example.com" />
  //    <title>Meta Refresh Redirect</title>
  //  </head>
  //  <body>
  //    <p>Redirecting to example.com in 5 seconds�</p>
  //  </body>
  //  </html>

  sb := TStringBuilder.Create;
  bCrlf := True;
  sb.AppendLine('<!DOCTYPE html>',bCrlf);
  sb.AppendLine('<html lang="en">',bCrlf);
  sb.AppendLine('<head>',bCrlf);
  sb.AppendLine('  <meta charset="utf-8" />',bCrlf);
  sb.AppendLine('  <meta http-equiv="refresh" content="5; url=https://example.com" />',bCrlf);
  sb.AppendLine('  <title>Meta Refresh Redirect</title>',bCrlf);
  sb.AppendLine('</head>',bCrlf);
  sb.AppendLine('<body>',bCrlf);
  sb.AppendLine('  <p>Redirecting to example.com in 5 seconds�</p>',bCrlf);
  sb.AppendLine('</body>',bCrlf);
  sb.AppendLine('</html>',bCrlf);

  url := http.ExtractMetaRefreshUrl(sb.GetAsString());
  if (http.LastMethodSuccess = False) then
    begin
      WriteLn('The HTML has no META refresh tag.');
    end
  else
    begin
      WriteLn('META refresh URL: ' + url);
    end;


  http.Free;
  sb.Free;

end;

// ---------------------------------------------------------------------------

begin

  try
    RunDemo;
  except
    on E: Exception do
      WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
  end;

  WriteLn;
  {$IFDEF MSWINDOWS}
  WriteLn('Press Enter to exit...');
  ReadLn;
  {$ENDIF}
end.