Indy - IdHttp como lidar com redirecionamentos de página?
Usando: Delphi 2010, versão mais recente do Indy
Estou tentando raspar os dados da página do Googles Adsense, com o objetivo de obter os relatórios. No entanto, até agora não obtive sucesso. Para após a primeira solicitação e não continua.
Usando o Fiddler para depurar o tráfego / solicitações no site do Google Adsense e um navegador da Web para carregar a página do Adsense, posso ver que a solicitação (do navegador da web) gera vários redirecionamentos até que a página seja carregada.
No entanto, meu aplicativo Delphi está gerando apenas alguns pedidos antes de parar.
Aqui estão os passos que segui:
Solte um componente IdHTTP e um IdSSLIOHandlerSocketOpenSSL1 no formulário.Defina as propriedades do componente IdHTTP AllowCookies e HandleRedirects como True e IOHandler como IdSSLIOHandlerSocketOpenSSL1.Defina a propriedade do componente IdSSLIOHandlerSocketOpenSSL1 Método: = 'sslvSSLv23'Finalmente eu tenho este código:
procedure TfmMain.GetUrlToFile(AURL, AFile : String);
var
Output : TMemoryStream;
begin
Output := TMemoryStream.Create;
try
IdHTTP1.Get(FURL, Output);
Output.SaveToFile(AFile);
finally
Output.Free;
end;
end;
No entanto, ele não chega à página de login conforme o esperado. Eu esperaria que ele se comportasse como se fosse um navegador da web e continue com os redirecionamentos até encontrar a página final.
Esta é a saída dos cabeçalhos do Fiddler:
HTTP/1.1 302 Found Location: https://encrypted.google.com/ Cache-Control: private Content-Type: text/html; charset=UTF-8 Set-Cookie: PREF=ID=5166063f01b64b03:FF=0:TM=1293571783:LM=1293571783:S=a5OtsOqxu_GiV3d6; expires=Thu, 27-Dec-2012 21:29:43 GMT; path=/; domain=.google.com Set-Cookie: NID=42=XFUwZdkyF0TJKmoJjqoGgYNtGyOz-Irvz7ivao2z0--pCBKPpAvCGUeaa5GXLneP41wlpse-yU5UuC57pBfMkv434t7XB1H68ET0ZgVDNEPNmIVEQRVj7AA1Lnvv2Aez; expires=Wed, 29-Jun-2011 21:29:43 GMT; path=/; domain=.google.com; HttpOnly Date: Tue, 28 Dec 2010 21:29:43 GMT Server: gws Content-Length: 226 X-XSS-Protection: 1; mode=block
Em primeiro lugar, há algo de errado com essa saída?
Há algo mais que devo fazer para que o componente IdHTTP continue perseguindo os redirecionamentos até a página final?