title: Why can't I fetch an AOL captcha image in my Delphi program?
body: <p>New demo code:</p>
  
  <p>I am trying to get the captcha image from a AOL, and I keep getting an error 418.</p>
  
  <pre><code>unit imageunit;
  ///
  ///  https://new.aol.com/productsweb/
  ///
  interface
  
  uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL,
    IdSSLOpenSSL, IdIntercept, IdZLibCompressorBase, IdCompressorZLib,
    IdCookieManager, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
    IdHTTP,jpeg,GIFImg, ExtCtrls, PerlRegEx;
  
  type
    TForm2 = class(TForm)
      IdHTTP1: TIdHTTP;
      IdCookieManager1: TIdCookieManager;
      IdCompressorZLib1: TIdCompressorZLib;
      IdConnectionIntercept1: TIdConnectionIntercept;
      IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
      Panel1: TPanel;
      Image1: TImage;
      Panel2: TPanel;
      Button1: TButton;
      PerlRegEx1: TPerlRegEx;
      Memo1: TMemo;
      procedure Button1Click(Sender: TObject);
    private
      { Private declarations }
    public
      { Public declarations }
    end;
  
  var
    Form2: TForm2;
  
  implementation
  
  {$R *.dfm}
  
  function getaimcaptchaimage(data:string):string;
  var
      Regex: TPerlRegEx;
      ResultString: string;
  begin
  Regex := TPerlRegEx.Create(nil);
  Regex.RegEx := '&lt;img src="/productsweb/WordVerImage?(.*?)"';
  Regex.Options := [preCaseless];
  Regex.Subject := data;
  if Regex.Match then begin
      if Regex.SubExpressionCount &gt;= 1 then begin
          ResultString := Regex.SubExpressions[1];
      end;
    result:=Resultstring;
  end;
  end;
  
  
  procedure TForm2.Button1Click(Sender: TObject);
  var
    JPI : TJPEGImage;
    streamdata:TMemoryStream;
    SStream: Tstringstream;
    website:string;
  begin
    streamdata := TMemoryStream.Create;
    SStream := tstringstream.Create ( '' );
  
    try
    idhttp1.Get('https://new.aol.com/productsweb/',SStream);
    memo1.Text:=UTF8ToWideString ( SStream.DataString );
    website:='https://new.aol.com/productsweb/WordVerImage'+getaimcaptchaimage( UTF8ToWideString ( SStream.DataString ));
    form2.Caption:=website;
    idhttp1.Get(website, Streamdata);
            Except
            { Handle exceptions }
            On E : Exception Do
                 Begin
                  MessageDlg('Exception: '+E.Message,mtError, [mbOK], 0);
                 End;
  
            End;
  
    //https://new.aol.com/productsweb/WordVerImage?20890843
    //https://new.aol.com/productsweb/WordVerImage?91868359
  
  
    ///
    ///  gives error 418 unused
    ///
  
    streamdata.Position := 0;
    JPI := TJPEGImage.Create;
    Try
    JPI.LoadFromStream ( streamdata );
    Finally
    Image1.Picture.Assign ( JPI );
    JPI.Free;
    streamdata.Free;
    End;
  
  end;
  
  end.
  </code></pre>
  
  <p>Form:</p>
  
  <pre><code>object Form2: TForm2
    Left = 0
    Top = 0
    Caption = 'Form2'
    ClientHeight = 247
    ClientWidth = 480
    Color = clBtnFace
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = 'Tahoma'
    Font.Style = []
    OldCreateOrder = False
    PixelsPerInch = 96
    TextHeight = 13
    object Panel1: TPanel
      Left = 0
      Top = 41
      Width = 480
      Height = 206
      Align = alClient
      TabOrder = 0
      object Image1: TImage
        Left = 1
        Top = 1
        Width = 478
        Height = 115
        Align = alClient
        ExplicitLeft = 5
        ExplicitTop = 17
        ExplicitWidth = 200
        ExplicitHeight = 70
      end
      object Memo1: TMemo
        Left = 1
        Top = 116
        Width = 478
        Height = 89
        Align = alBottom
        TabOrder = 0
        ExplicitLeft = 80
        ExplicitTop = 152
        ExplicitWidth = 185
      end
    end
    object Panel2: TPanel
      Left = 0
      Top = 0
      Width = 480
      Height = 41
      Align = alTop
      TabOrder = 1
      object Button1: TButton
        Left = 239
        Top = 6
        Width = 75
        Height = 25
        Caption = 'Button1'
        TabOrder = 0
        OnClick = Button1Click
      end
    end
    object IdHTTP1: TIdHTTP
      Intercept = IdConnectionIntercept1
      IOHandler = IdSSLIOHandlerSocketOpenSSL1
      MaxAuthRetries = 100
      AllowCookies = True
      HandleRedirects = True
      RedirectMaximum = 100
      ProxyParams.BasicAuthentication = False
      ProxyParams.ProxyPort = 0
      Request.ContentLength = -1
      Request.Accept = 
        'image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-s' +
        'hockwave-flash, application/cade, application/xaml+xml, applicat' +
        'ion/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-' +
        'application, */*'
      Request.BasicAuthentication = False
      Request.Referer = 'http://www.yahoo.com'
      Request.UserAgent = 
        'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.1) Gecko/201001' +
        '22 firefox/3.6.1'
      HTTPOptions = [hoForceEncodeParams]
      CookieManager = IdCookieManager1
      Compressor = IdCompressorZLib1
      Left = 40
      Top = 160
    end
    object IdCookieManager1: TIdCookieManager
      Left = 360
      Top = 136
    end
    object IdCompressorZLib1: TIdCompressorZLib
      Left = 408
      Top = 56
    end
    object IdConnectionIntercept1: TIdConnectionIntercept
      Left = 304
      Top = 72
    end
    object IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL
      Intercept = IdConnectionIntercept1
      MaxLineAction = maException
      Port = 0
      DefaultPort = 0
      SSLOptions.Mode = sslmUnassigned
      SSLOptions.VerifyMode = []
      SSLOptions.VerifyDepth = 0
      Left = 192
      Top = 136
    end
    object PerlRegEx1: TPerlRegEx
      Options = []
      Left = 120
      Top = 56
    end
  end
  </code></pre>
  
  <p>If you go to <a href="https://new.aol.com/productsweb/" rel="nofollow noreferrer">https://new.aol.com/productsweb/</a>
  you will notice the captcha image has a url like <a href="https://new.aol.com/productsweb/WordVerImage?91868359" rel="nofollow noreferrer">https://new.aol.com/productsweb/WordVerImage?91868359</a></p>
  
  <p>I put that url in the edit box and get an error. </p>
  
  <p>What is wrong with this code?   </p>