ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

idHTTP - como conseguir a URL do Redirect ? (geocoding)

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Marc-br
Aprendiz
Aprendiz


Registrado: Terça-Feira, 3 de Julho de 2007
Mensagens: 141
Localização: Franca-SP

MensagemEnviada: Qui Dez 16, 2021 8:29 pm    Assunto: idHTTP - como conseguir a URL do Redirect ? (geocoding) Responder com Citação

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 ?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB