Marc-br Aprendiz
Registrado: Terça-Feira, 3 de Julho de 2007 Mensagens: 141 Localização: Franca-SP
|
Enviada: Qui Dez 16, 2021 8:29 pm Assunto: idHTTP - como conseguir a URL do Redirect ? (geocoding) |
|
|
Boa noite.
Estou com Delphi 11 (alexandria) trabalhando com geocoding e usando idhttp. Acontece que a API do google que convertia endereço em coordenadas passou a ser paga.
Então encontrei uma alternativa gratuita.
Eu disparo a URL de pesquisa de endereço do google maps e ao disparar a URL, a URL tem um redirect, e a URL muda contendo as coordenadas que eu quero (na propria URL redirecionada), no conteudo da pagina que a URL retorna nao tem a coordenada.
Eu ja havia feito isso pelo componente WebBrowser. Mas não ficou uma coisa profissional. Leva um tempo, alguns segundos, baixa conteudo, imagens... sendo que eu precisava somente da URL que redireciona no final.
Se houver jeito ate de ignorar os downloads de imagens, etc, otimizaria a conexão visto que meu intuito é somente pegar a URL redirecionada (que contem as coordenadas). Poderia ser uma coisa mais otimizada se houver a possibilidade.
Então eu crio um projeto novo
Crio o componente idHttp1
No componente idHttp1 eu seto HandleRedirects = true
Crio o componente IdSSLIOHandlerSocketOpenSSL1
No componente idHttp1 eu seto IOHandler = IdSSLIOHandlerSocketOpenSSL1
Pra não dar erro de "Could not load SSL library"
Eu preciso copiar as DLLs libeay32.dll e ssleay32.dll
do diretorio
C:\Program Files (x86)\Embarcadero\Studio\22.0\bin\subversion\
para o diretorio do executavel do projeto
Então eu crio um botão e implemento o codigo a seguir
var
StreamData :TMemoryStream;
Url : string;
begin
Url := 'https://www.google.com/maps/search/?api=1&query=RUA%20ALCINDO%20RIBEIRO%20CONRADO%20%2D%20DR%2E%2C%201395%2C%20Franca%20%2D%20SP';
StreamData := TMemoryStream.Create;
try
try
idhttp1.Get(Url, StreamData);
Except On E : Exception Do
MessageDlg('Exception: '+E.Message,mtError, [mbOK], 0);
End;
finally
StreamData.free;
end;
end;
//-------------------------------
Agora preciso conseguir extrair a URL redirecionada, alguem me ajuda nisso ? |
|