Do PHP para o C Sharp

30/07/2013

Estou tentando aprender a como fazer com Jquery e Ajax, a consulta por CEP, tipo, digito o CEP e ele já preenche a rua, cidade, bairro e uf. Acontece que a maioria dos sites eu pego os exemplos em PHP e na hora de passar alguma coisa do PHP para o C# eu me perco, tipo, no código ele faz menção de uma página PHP. Como eu faço ela se tornar C# ou Asp.Net? Abaixo o código em PHP:

<?php

$cep = $_POST['cep'];

$reg = simplexml_load_file("http://cep.republicavirtual.com.br/web_cep.php?formato=xml&cep=" . $cep);

$dados['sucesso'] = (string) $reg->resultado;
$dados['rua'] = (string) $reg->tipo_logradouro . ' ' . $reg->logradouro;
$dados['bairro'] = (string) $reg->bairro;
$dados['cidade'] = (string) $reg->cidade;
$dados['estado'] = (string) $reg->uf;

echo json_encode($dados);

?>

Pjava

Respostas

30/07/2013

Thiagoporto

essa url retorna um xml, no próprio c# existe a possibilidade de ler xml dá uma pesquisada.
Responder Citar

30/07/2013

Thiagoporto

percebi uma coisa, ele pega uma url que retorna um xml, e joga os dados em uma variável e depois converte para json, é muita coisa, no próprio jquery com ajax você poderia pegar apenas a url e ler e jogar aonde quiser.
Responder Citar

30/07/2013

Pjava

Então é exatamente isso, mas não sei como substituir isso tudo no C#. Abaixo os códigos do html, jquery e ajax.

<!DOCTYPE html>
<html>
    <head>
        <title>Consulta de CEP - por rafaelWendel.com</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type='text/javascript' src='http://files.rafaelwendel.com/jquery.js'></script>
        <script type='text/javascript' src='cep.js'></script>
 
    </head>
    <body>
        <h1>Preenchimento automático com consulta de CEP - por <a href="http://www.rafaelwendel.com" title="Visite o blog www.rafaelwendel.com">rafaelWendel.com</a></h1>
        <form id="form1" class="form1" method="post">
            <label>CEP (Somente números):</label><br />
            <input type="text" name="cep" id="cep" maxlength="8" />
 
            <br /><br />
 
            <label>Rua:</label><br />
            <input type="text" name="rua" id="rua" size="45" />
 
            <br /><br />
 
            <label>Número:</label><br />
            <input type="text" name="numero" id="numero" size="5" />
 
            <br /><br />
 
            <label>Bairro:</label><br />
            <input type="text" name="bairro" id="bairro" size="25" />
 
            <br /><br />
 
            <label>Cidade:</label><br />
            <input type="text" name="cidade" id="cidade" size="25" />
 
            <br /><br />
 
            <label>Estado:</label><br />
            <input type="text" name="estado" id="estado" size="2" />
 
            <br /><br />
 
            <input type="submit" value="Salvar Dados" />
 
        </form>
    </body>
</html>


Veja que url do ajax ele chama a página. O que passo com C#?
$(document).ready( function() {
   /* Executa a requisição quando o campo CEP perder o foco */
   $('#cep').blur(function(){
           /* Configura a requisição AJAX */
           $.ajax({
                url : 'consultar_cep.php', /* URL que será chamada */ 
                type : 'POST', /* Tipo da requisição */ 
                data: 'cep=' + $('#cep').val(), /* dado que será enviado via POST */
                dataType: 'json', /* Tipo de transmissão */
                success: function(data){
                    if(data.sucesso == 1){
                        $('#rua').val(data.rua);
                        $('#bairro').val(data.bairro);
                        $('#cidade').val(data.cidade);
                        $('#estado').val(data.estado);
 
                        $('#numero').focus();
                    }
                }
           });   
   return false;    
   })
});
Responder Citar

30/07/2013

Thiagoporto

use essa http://correiosapi.apphb.com/ vai ajudar, entra no site e veja o exemplo
Responder Citar

30/07/2013

Thiagoporto

Fiz um exemplo bem simples

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>Usando REST para recuperar CEP</title>
	<script src="jquery.js"></script>

	<script>		
		
		$(document).ready(function(){		

			$("#carregando").hide();
			$("#btnPesquisar").click(function(){
				
				$.ajax({
					url: 'http://correiosapi.apphb.com/cep/'+$("#txtValor").val(),
					dataType: 'jsonp',
					beforeSend: function(){
						$("#carregando").show();							
					},
					success: function(data){

						$(data).each(function(){
							$("#resultado").append("<h2>CEP: "+data.cep+"</h2>"+
												   "<h2>Tipo: "+data.tipoDeLogradouro+"</h2>"+
												   "<h2>Logradouro: "+data.logradouro+"</h2>"+
												   "<h2>Bairro: "+data.bairro+"</h2>"+
												   "<h2>Cidade: "+data.cidade+"</h2>"+
												   "<h2>UF: "+data.estado+"</h2>");							
						})
					},
					complete: function(){
						$("#carregando").hide();								
					}
				})
				
			});
		});
	</script>
</head>
<body>
	<fieldset>
		<legend>Informe o número do CEP(Somente números)</legend>
		<input type="text" id="txtValor">
		<input type="button" id="btnPesquisar" value="Pesquisar">
	</fieldset>

	<br>	
	<div id="carregando">
		<img src="ajax-loader.gif"> Carregando...
	</div>

	<div id="resultado"></div>
</body>
</html>
Responder Citar

30/07/2013

Joel Rodrigues Currículo

Opa. Eu publiquei recentemente um artigo sobre isso: [url]http://www.devmedia.com.br/consultando-endereco-por-cep-em-c/28061[/url]
Responder Citar

30/07/2013

Thiagoporto

Opa. Eu publiquei recentemente um artigo sobre isso: [url]http://www.devmedia.com.br/consultando-endereco-por-cep-em-c/28061[/url]


Perfeito!
Responder Citar

31/07/2013

Pjava

Ok, vou conferir os dois
Responder Citar

31/07/2013

Pjava

Thiago, não consegui fazer funcionar. O que devo fazer?
Responder Citar

31/07/2013

Thiagoporto

entra no meu github.com/tporto e pega os fontes
Responder Citar

31/07/2013

Pjava

Olá Joel, vi seu exemplo. O que passa que para mim é um teste e tem que ser feito com JQuery e Ajax.
Responder Citar

31/07/2013

Pjava

Thiago, esses são os erros que aparecem no debug do chrome

Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:15056/jquery.js
Uncaught ReferenceError: $ is not defined TesteGeral.aspx:14
Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:15056/ajax-loader.gif
[Wed Jul 31 2013 09:43:54] <ErrorType: ReferenceError, Message: tcmInjectBanner is not defined ,FuncName: pluginId: 108>
Responder Citar

31/07/2013

Pjava

O exemplo baixado funcionou. Vou comparar e ver o que está errado entre os dois
Responder Citar

31/07/2013

Pjava

Então, o que está passando é se eu coloco esse código em página aspx não funciona, mas se for uma html simples aí funciona. Porque não funciona em uma aspx?
Responder Citar

31/07/2013

Thiagoporto

pode ser problema de carregamento, manda seu código aspx
Responder Citar