Criando um Web Service de CEP's
Antes de tudo é necessário baixar a classe NUSOAP para prover conexão com o protocolo SOAP ou "Simple Object Access Protocol", ela está disponível em "http://dietrich.ganx4.com/nusoap/downloads/nusoap-0.6.4.zip"
Com a Classe NUSOAP, mãos a obra.
Vamos criar a base de dados com os registros de CEP do Brasil.
"http://members.lycos.co.uk/phabiopassos/cep.rar", é só descompactar e restaurar com o mysql.
Escrevendo o Server :
Escrevendo o Client :
Fonte de pesquisa: http://www.phpbuilder.com/columns/kramberger20031226.php3?page=2
Com a Classe NUSOAP, mãos a obra.
Vamos criar a base de dados com os registros de CEP do Brasil.
"http://members.lycos.co.uk/phabiopassos/cep.rar", é só descompactar e restaurar com o mysql.
Escrevendo o Server :
<? /************************************************************** * Descrição: * SOAP Server (Web Service CEP´s). **************************************************************/ // include nusoap classe require('nusoap.php'); // instância do Server $obServer = new soap_server(); $obServer->register('QueryByCep'); function QueryByCep($input_cep) { if (is_int($input_cep)){ $host = 'localhost'; $db = 'cep'; $user = 'root'; $passwd = ''; $obDB = @mysql_connect($host, $user, $passwd); $DBResult = @mysql_db_query($db, 'SELECT tipo,logradouro, logradouro_sem_acento, bairro, localidade, uf FROM cep WHERE cep ="'.$input_cep.'" LIMIT 1'); // Checa a conexão com Banco. if (!$DBResult ) { return new soap_fault('Server', '', 'Ocorreu um erro interno do servidor.'); } // se não retornar nenhum registro if (!mysql_num_rows($DBResult)) { return new soap_fault('Server', '', "Não foi encontrado nenhum endereço com o CEP: $input_cep"); } mysql_close($obDB); // retorna dados return mysql_fetch_array($DBResult, MYSQL_ASSOC); } else{ return new soap_fault('Client', '', 'Serviço requer somente numeros no parametro de pesquisa. '); } } $obServer->service($HTTP_RAW_POST_DATA); ?>
Escrevendo o Client :
<?php /************************************************************** * Description: * SOAP Client (client.php). **************************************************************/ // use form data if ((string)$_GET['action'] == 'get_data') { // include nusoap classe require('nusoap.php'); // seta paramento e instacia o client. $Param = array($_POST['cep']); $obClient = new soapclient('http://10.0.0.146/webservice/server_cep.php'); // Faz a chamada para o webmetodo(QueryByCep) $Result = $obClient->call('QueryByCep', $Param); // checa se houve erro if (!$obClient->getError()) { // print resultados print '<h1>Dados do CEP: ' .$Param[0] . '</h1>
- tipo: ' .$Result['tipo'] . '
- Logradouro: ' .$Result['logradouro'] . '
- Logradouro sem acento: ' .$Result['logradouro_sem_acento'] . '
- Bairro: ' .$Result['bairro'] . '
- Localidade: ' .$Result['localidade'] . '
- UF: ' .$Result['uf'] . '
Fonte de pesquisa: http://www.phpbuilder.com/columns/kramberger20031226.php3?page=2
Base de CEP em tempo real para consulta online e GRATUITA http://www.appnet.com.br/cep/
14/10/2017 1:35pm
(~7 anos atrás)
Para quem não tem a base de dados acima, basta acessar o seguinte script:
http://www.phpbrasil.com/scripts/script.php/id/3337
Ele fará toda essa procura, am AJAX, em uma base da dados interna e os links para download da base de dados também estão nele.
Abraços.
http://www.phpbrasil.com/scripts/script.php/id/3337
Ele fará toda essa procura, am AJAX, em uma base da dados interna e os links para download da base de dados também estão nele.
Abraços.
19/12/2006 7:23am
(~18 anos atrás)
Gostaria de saber se é possível uma página PHP acessar um servlet remotamente, ou seja, a página PHP e o servlet estão em locais diferentes.
Obrigado
Obrigado
13/06/2006 5:23am
(~18 anos atrás)
Ola Pessoal
Alguem tem a base de cep indicada nesse artigos disponivel
já que o link esta quebrado.
Se tiver por favor me envie.
Grato
Alguem tem a base de cep indicada nesse artigos disponivel
já que o link esta quebrado.
Se tiver por favor me envie.
Grato
13/04/2006 9:59am
(~18 anos atrás)
Ola Alguem tem a base de CEP ?
Poderia me passar ?
Grato
leogenilhu@gmail.com
Poderia me passar ?
Grato
leogenilhu@gmail.com
12/04/2006 6:16am
(~18 anos atrás)
Olá, executei o exemplo acima utilizando uma base de CEP's que tenho, porém, obtive o seguinte erro:
Error: no transport found, or selected transport is not yet supported!
Se alguém puder me ajudar eu agradeceria!!!
Error: no transport found, or selected transport is not yet supported!
Se alguém puder me ajudar eu agradeceria!!!
29/11/2005 11:42am
(~19 anos atrás)
Pessoal, tentei fazer download da base do CEP, mas não funcionou...
Usei este link fornecido: www.auriumsoft.com.br/backups/cep_mysql.rar
Valeu
Usei este link fornecido: www.auriumsoft.com.br/backups/cep_mysql.rar
Valeu
17/10/2005 6:26pm
(~19 anos atrás)
foi totalmente na sorte que consegui fazer funcionar... Fui mudando e mudando até que " puff " ... funcionou!
eis o codigo final:
require_once('nusoap.php');
$wsdl="http://localhost/testes_webservice/Soma.wsdl";
$client = new soapclient($wsdl, true);
$param=array('Valor1'=>20 , 'Valor2'=>30);
$Response = $client->call('Soma', $param, '', '', false, true);
echo $Response;
Simples não?
Notem que acrecentei apenas o parametro true ao instanciar o objeto e usei 2 parametros em branco, um false e um true no $client->call
agora o que significam esses parametros não me perguntem pois não tenho a menor ideia...
Quando tiver tempo vou pesquisar o que significam....
Obrigado pelo apoio!
[ ]'s
eis o codigo final:
require_once('nusoap.php');
$wsdl="http://localhost/testes_webservice/Soma.wsdl";
$client = new soapclient($wsdl, true);
$param=array('Valor1'=>20 , 'Valor2'=>30);
$Response = $client->call('Soma', $param, '', '', false, true);
echo $Response;
Simples não?
Notem que acrecentei apenas o parametro true ao instanciar o objeto e usei 2 parametros em branco, um false e um true no $client->call
agora o que significam esses parametros não me perguntem pois não tenho a menor ideia...
Quando tiver tempo vou pesquisar o que significam....
Obrigado pelo apoio!
[ ]'s
22/02/2005 2:35pm
(~20 anos atrás)
Parabens pelo artigo, mas eu tenho uma nova missão para vcs...
É possível acessar um webservice com o servidor feito em Delphi e o cliente em PHP?
Vou especificar melhor...
Minha empresa tem um servidor feito em em Delphi e nossos sites feitos em ASP acessam facilmente esse webservice com apenas poucas linhas:
Set soapclient = Server.CreateObject("MSSOAP.SoapClient30")
Call soapclient.mssoapinit(Server.MapPath("Nome.wsdl"),"ReservaService","ReservaPort")
Com isso as paginas ASP conseguem utilizar funções que estão nesse servidor.exe (feito em delphi) bastando para isso ter o SOAP tool Kit 3.0, e o servidor.exe instalado na maquina.
Como gosto mais do PHP que do ASP, estou numa luta para tentar demonstrar que é possível fazer a mesma coisa com o PHP, mas esta dificil...
O que eu fiz até agora foi baixar o NuSoap e ja consegui rodar os exemplos que encontrei por aí...
No entanto todos usam servidores e funções feitas no propio PHP.
E se eu quiser usar as funções feitas no Delphi????
Criei uma função Soma que simplesmente soma 2 inteiros para testar o webservice.
Notem que no codigo ASP acima eu consigo passar mais parametros:
ReservaService
ReservaPort
Tentei fazer isto
require_once('nusoap.php');
$wsdl="http://localhost/testes_webservice/Nome.wsdl";
$client=new soapclient($wsdl, 'wsdl');
$param1=array('Valor1'=>20,);
$param2=array('Valor2'=>30);
echo $client->call('Soma', $param1, $param2);
mas não sei onde encaichar os outros dois parametros:
ReservaService e
ReservaPort
para que a comunicação seja feita
Por favor me AJUDEM!
É possível acessar um webservice com o servidor feito em Delphi e o cliente em PHP?
Vou especificar melhor...
Minha empresa tem um servidor feito em em Delphi e nossos sites feitos em ASP acessam facilmente esse webservice com apenas poucas linhas:
Set soapclient = Server.CreateObject("MSSOAP.SoapClient30")
Call soapclient.mssoapinit(Server.MapPath("Nome.wsdl"),"ReservaService","ReservaPort")
Com isso as paginas ASP conseguem utilizar funções que estão nesse servidor.exe (feito em delphi) bastando para isso ter o SOAP tool Kit 3.0, e o servidor.exe instalado na maquina.
Como gosto mais do PHP que do ASP, estou numa luta para tentar demonstrar que é possível fazer a mesma coisa com o PHP, mas esta dificil...
O que eu fiz até agora foi baixar o NuSoap e ja consegui rodar os exemplos que encontrei por aí...
No entanto todos usam servidores e funções feitas no propio PHP.
E se eu quiser usar as funções feitas no Delphi????
Criei uma função Soma que simplesmente soma 2 inteiros para testar o webservice.
Notem que no codigo ASP acima eu consigo passar mais parametros:
ReservaService
ReservaPort
Tentei fazer isto
require_once('nusoap.php');
$wsdl="http://localhost/testes_webservice/Nome.wsdl";
$client=new soapclient($wsdl, 'wsdl');
$param1=array('Valor1'=>20,);
$param2=array('Valor2'=>30);
echo $client->call('Soma', $param1, $param2);
mas não sei onde encaichar os outros dois parametros:
ReservaService e
ReservaPort
para que a comunicação seja feita
Por favor me AJUDEM!
21/02/2005 9:31am
(~20 anos atrás)