Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Ter Mai 08, 2018 11:16 am Assunto: No mapping for the Unicode character exists.... |
|
|
Sempre usei o código abaixo para pegar o CEP deste link
http://republicavirtual.com.br/web_cep.php?
Código: | procedure BuscaCEPNet(aTFieldCEP: String;
var aTFieldLogradouro, aTFieldEndereco, aTFieldBairro, aTFieldCidade,
aTFieldUf: String);
var
aidHTTP: TIdHTTP;
ListaEndereco: TStringList;
begin
ListaEndereco := TStringList.Create;
aidHTTP := TIdHTTP.Create;
try
ListaEndereco.Delimiter := '&';
ListaEndereco.StrictDelimiter := True;
/// Estou usando o HTTPDecode da unit HTTPApp
ListaEndereco.DelimitedText :=
HTTPDecode(aidHTTP.Get('http://republicavirtual.com.br/web_cep.php?cep=' +
aTFieldCEP + '&formato=query_string'));
aTFieldLogradouro := ListaEndereco.Values['tipo_logradouro'];
aTFieldEndereco := ListaEndereco.Values['logradouro'];
aTFieldBairro := ListaEndereco.Values['bairro'];
aTFieldCidade := ListaEndereco.Values['cidade'];
aTFieldUf := ListaEndereco.Values['uf'];
finally
aidHTTP.Free;
end;
end; |
Porém no delphi XE7 ta dando o erro abaixo
Erro
---------------------------
Debugger Exception Notification
---------------------------
message 'No mapping for the Unicode character exists in the target multi-byte code page'.
Creio que o problema seja nesta função nativa HTTPDecode da unit HTTPApp
Se eu uso assim
Código: | ListaEndereco.DelimitedText := aidHTTP.URL.URLDecode(aidHTTP.Get('http://republicavirtual.com.br/web_cep.php?cep=' +
aTFieldCEP + '&formato=query_string')); |
Não funciona, fica com char estranhos em letras acentuadas. _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Ter Ago 06, 2019 10:21 am Assunto: Consumir API CEP delphi |
|
|
Numa nova ocasião sem poder usar o acbrcep então consegui resolver o problema desta maneira
Código: | procedure pBuscaCEPNet(aTFieldCEP: String; var aTFieldEndereco, aTFieldBairro,
aTFieldCidade, aTFieldUf: String);
var
IdHTTP: TIdHTTP;
TSConsulta: Tstringlist;
begin
IdHTTP := TIdHTTP.Create(nil);
TSConsulta := Tstringlist.Create;
try
IdHTTP.Request.UserAgent :=
'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV2';
/// Usar o httpdecode no projeto da unit HTTPApp, por causa
/// dos acentos
TSConsulta.Text := StringReplace
(HTTPDecode(IdHTTP.Get('http://republicavirtual.com.br/web_cep.php?cep=' +
aTFieldCEP + '&formato=query_string')), '&', #13#10, [rfreplaceAll]);
// _ListaEndereco vira uma matriz e fazemos o acesso aos dados...
{ Passando o valor do endereço das variaveis para os campos }
aTFieldEndereco := TSConsulta.Values['TIPO_LOGRADOURO'] + ' ' +
TSConsulta.Values['LOGRADOURO'];
aTFieldBairro := TSConsulta.Values['BAIRRO'];
aTFieldCidade := TSConsulta.Values['CIDADE'];
aTFieldUf := TSConsulta.Values['UF'];
finally
/// Limpando da memoria
TSConsulta.Free;
IdHTTP.Free;
end;
end; |
Delarar no uses do projeto HTTPApp _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
|
johnny-walker Moderador
Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Qui Ago 22, 2019 9:46 am Assunto: |
|
|
Você pode utilizar o código do acbr, pois ele utiliza synapse, não utiliza indy e não precisa instalar.
bye _________________ P.O.W.E.R B.Y D.E.L.P.H.I |
|
Voltar ao Topo |
|
|
|