Blz?!
Depois de mais de 2 meses de inatividade desta vez ou mostrar aqui uma dica que um amigo (Felipe Cesarini) me passou. Esse post nada mais é que o Flex consumindo um Webservices de consulta de CEP no caso do site www.buscarcep.com.br/ (não conheço ninguém da empresa, não estou ganhando um centavo), é um serviço muito bacana e vale a pena dar uma olhada com mais atenção.
Faça o cadastro no site www.buscarcep.com.br/ e obter a chave de acesso.
Não me preocupei em fazer nenhuma grande validação antes de consumir o WS ou no retorno do mesmo o exemplo está preparado apenas para o caso "deu tudo certo", então recomendo se você for implementar isso na sua aplição de atenção ao tratamento de erros [;)]
Agora chega de enrolação, vamos lá!
Basta digitar o seu CEP e pressionar ENTER ou TAB, a chave de acesso deste exemplo só dá direito a 10 consultas por minuto então se não funcionar de primeira, aguarde um pouco.
import mx.managers.CursorManager;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;
import mx.rpc.events.FaultEvent;
import mx.controls.Alert;
[Bindable]
private var
_uBucaCEP: HTTPService;
private function proCreationComplete(): void {
// Iniciazila o serviço
_uBucaCEP = new HTTPService();
_uBucaCEP.method = 'POST';
_uBucaCEP.addEventListener(ResultEvent.RESULT, proCEPResultHandler, false, 0, true);
_uBucaCEP.addEventListener(FaultEvent.FAULT, proFaultEvent, false, 0, true);
_uBucaCEP.resultFormat = 'e4x';
}
private function proNR_CEPFocusOut(): void {
// Faz uma verificação simples antes de realizar a consulta
if (eNR_CEP.length == 8 && !isNaN(parseInt(eNR_CEP.text))) {
CursorManager.setBusyCursor();
_uBucaCEP.url = 'http://www.buscarcep.com.br/?cep=' + eNR_CEP.text + '&formato=xml&chave=SUA_CHAVE_AQUI'
_uBucaCEP.send();
}
}
private function proCEPResultHandler(Evento: ResultEvent):void {
var
_rResult: XMLList = new XMLList(new XML(Evento.result));
CursorManager.removeAllCursors();
if (eNR_CEP.length == 8){
eNM_END.text = String(_rResult..bairro);
eCD_CIDADE.text = String(_rResult..ibge_municipio);
eNM_CIDADE.text = String(_rResult..cidade);
eSG_ESTADO.text = String(_rResult..uf);
}
else {
eNM_END.text = '';
eNM_BAIRRO.text = '';
eCD_CIDADE.text = '';
eNM_CIDADE.text = '';
eSG_ESTADO.text = '';
}
}
private function proFaultEvent(Evento: FaultEvent): void {
CursorManager.removeAllCursors();
Alert.show(Evento.message.toString());
}
Bons estudos e bom trabalho a todos.
Abraços


5 comentários:
eNM_END.text = String(_rResult..bairro);
Bem observado, mas com eu já havia dito, se for aplicar é bom revisar[;)]
Você configurou crossdomain?
Não foi necessário mas se precisar é simples
crossdomain.xml
< cross-domain-policy >
< allow-access-from domain="www.seusite.com" / >
< allow-access-from domain="ip" / >
< / cross-domain-policy >
[]´s
Postar um comentário