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
(~8 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
(~19 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
(~20 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
(~20 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
(~20 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
(~20 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
(~20 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
(~21 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
(~21 anos atrás)


disse:
