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