その理由は、ヒットしようとしている Web サイトが Cookie を探しており、設定されていない場合は設定を試みてから、302 リダイレクトを自分自身に戻すためです。
Cookie マネージャーを接続していないため、サイトが Cookie をチェックし、設定してからリダイレクトし続けるため、302 リダイレクト ループに陥っています。
Cookie を処理すると、302 が 1 つだけで問題なく動作します。
しかし、何らかの理由で Indy がこのサイトから送信されている Cookie を無視しているようです。http://www.google.comにアクセスすると、いくつかのテスト コードを作成しました。
New cookie: PREF
New cookie: NID
Redirecting (1) to: http://www.google.co.nz/
New cookie: PREF
New cookie: NID
これは、Google が送信するヘッダーです
Set-Cookie: PREF=ID=3c7e441914b902ae:TM=1268686477:LM=1268686477:S=Z-Gwqx52jK0V1rYR; expires=Wed, 14-Mar-2012 20:54:37 GMT; path=/; domain=.google.com
Set-Cookie: NID=32=vsOZvkr4AOZ7320d_OBPf2zR2jau4E6pupbOe_ZaaX4DNjahTzSV-mSA55naTk-5cXQcn7SNEp7uSxbE_cFrL9ZftGApTGZMPGKzcz3_NZE_2MYpWG5PGbwWFw9t2d_R; expires=Tue, 14-Sep-2010 20:54:37 GMT; path=/; domain=.google.com; HttpOnly
ただし、その他のサイトでは、デバッグ出力でこれを取得します
Redirecting (1) to: http://www.chefscatalog.com/error.aspx?impsid=0
Redirecting (2) to: http://www.chefscatalog.com/error.aspx?impsid=0
最大15回の試行まで..サイトが送り返すヘッダーを見ると
Set-Cookie: ASP.NET_SessionId=4o0bpi45evee0d45qos1uy55; path=/; HttpOnly
Set-Cookie: ChefsSite=CartID=00000000-0000-0000-0000-000000000000&cst=f4t8YpBpAAkNiRUd9BEf2luKAA%3d%3d&act=c0f2VBCSbv30F4kasnvWS5OfJQ%3d%3d&CookiesEnabled=False; expires=Wed, 14-Apr-2010 20:54:22 GMT; path=/
サイトの Set-Cookie の末尾にドメインがありませんが、これは奇妙ですが、RFC の必須事項ではないと思います。idCookieManager の AddCookie/2 メソッドを見ると、そのパラメーターにホストが必要なため、ドメインを指定しない Set-Cookie では機能しない可能性があります。
これをさらにいくつかのサイトでテストしましたが、Set-Cookie に domain=.google.com; が含まれている場合はすべて正常に動作します。
idHttp.OnRedirect を見ると、
idHttp.Response.RawHeaders.Text
機能しないサイトでは Set-Cookies は表示されませんが、機能するサイトでは Set-Cookies が表示されます...
ただし、idhttp useragent を
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.1) Gecko/20100122 firefox/3.6.1
(別の回答から)
それから、クッキーをうまく拾うようです
New cookie: ASP.NET_SessionId
New cookie: ChefsSite
Redirecting (1) to: http://www.chefscatalog.com/international/home.aspx
New cookie: ChefsSite
変。