Причина в том, что веб-сайт, на который вы пытаетесь попасть, ищет файл cookie, и, если он не устанавливается, он пытается установить его, а затем перенаправляет 302 обратно на себя.
Поскольку вы не подключили менеджер файлов cookie, вы попадаете в цикл перенаправления 302, поскольку сайт продолжает проверять файлы cookie, настраивать и затем перенаправлять.
Обрабатывайте куки-файлы, и они будут отлично работать только с одним 302.
Однако, похоже, по какой-то причине 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. если мы посмотрим на методы AddCookie / 2 idCookieManager, для которых требуется хост с этим параметром, так что, возможно, он не будет работать на любых Set-Cookies, которые не дают домен.
Я проверил это еще на нескольких сайтах, и все работает нормально, если в 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
Weird.