WebService em PHP utilizando NuSOAP

Receba em primeira mão o conteúdo exclusivo do Blog, além de promoções de livros e cursos de programação. Você receberá um email de confirmação. Somente depois de confirmar é que poderei lhe enviar o conteúdo exclusivo por email.

Email inválido.
Blog /Desenvolvimento Web /WebService em PHP utilizando NuSOAP

WebService em PHP utilizando NuSOAP

Vinícius Thiengo25/11/2013, Segunda-feira, às 16h
(8350) (48) (20) (1)
Go-ahead
"A disciplina e a liberdade não são mutuamente excludentes, mas mutuamente dependentes, porque sem disciplina nós afundaríamos no caos."
Paulo Coelho
Código limpo
Capa do livro Refatorando Para Programas Limpos
TítuloRefatorando Para Programas Limpos
CategoriaEngenharia de Software
AutorVinícius Thiengo
Edição
Ano2017
Capítulos46
Páginas598
Comprar Livro
Conteúdo Exclusivo
Receba em primeira mão o conteúdo exclusivo do Blog, além de promoções de livros e cursos de programação.
Email inválido

Opa! Blz?!

Nesse vídeo apresento a lib NuSOAP para utilização de WebService no PHP. Você é programador, mas não manja nada de WebService? Aqui pode ser o seu inicio, pois você terá de ter um inicio em WebService. Juntamente com a tecnologia mobile, os webServices cada vez mais ganham adeptos e para reforçar ainda mais a melhor maneira de realizar a comunicação de uma APP mobile e um servidor Web é por meio de WebService.

Existem inúmeras vantagens na utilização de WebServices, mas isso eu vou deixar com você e o Google depois de ter assistido ao vídeo.

Os links de página de demonstração e download do projeto se encontram logo abaixo no post.

Página de download do NuSoap

Página de explicação da váriavel nativa do PHP $HTTP_RAW_POST_DATA

Qualquer dúvida, pergunte.

Se divirta, evolua.

Receba em primeira mão o conteúdo exclusivo do Blog, além de promoções de livros e cursos de programação.
Email inválido

Relacionado

jQuery Para Quem Não ConhecejQuery Para Quem Não ConheceDesenvolvimento Web
PHP Para Quem Não ConhecePHP Para Quem Não ConheceDesenvolvimento Web
PHP: FunçõesPHP: FunçõesDesenvolvimento Web
PHP: Classes e ObjetosPHP: Classes e ObjetosDesenvolvimento Web

Compartilhar

Comentários Facebook (19)

Comentários Blog (29)

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...
26/04/2016, Terça-feira, às 15h
Me desculpe pela demora.
Consegui resolver o problema, o problema não estava no código do seu exemplo mas, foi preciso descomentar a linha extension=php_soap.dll do arquivo php.ini e o exemplo funcionou normalmente.
Responder
Vinícius Thiengo (1) (0)
26/04/2016, Terça-feira, às 18h
Show de bola Jemison. Abraço
Responder
22/04/2016, Sexta-feira, às 10h
Cara agradeço muito a sua ajuda.
Tenho instalado aqui o php 5.6
Postei com o nome WebServiceJemison
Responder
Vinícius Thiengo (0) (0)
22/04/2016, Sexta-feira, às 18h
Jemison, coloque aqui o link.
Responder
18/04/2016, Segunda-feira, às 13h
Opa Thiengo blza? Cara sou novato em PHP e estou reproduzindo seu exemplo seguindo o vídeo, porém o cliente não retorna nenhum valor. Baixei seu arquivo e me deparei com o mesmo problema. Tem algo mais que eu deva fazer?
Responder
Vinícius Thiengo (0) (0)
19/04/2016, Terça-feira, às 01h
Fala Jemilson, blz aqui.
Se possível faça o seguinte, como não sei a versão de seu PHP e sabendo que essa lib (NuSOAP) está um pouco antiga, utilize a primeira library do resultado desse link: https://packagist.org/search/?q=soap
Essa é mais atual. Se mesmo assim nada volte ae. Abraço
Responder
19/04/2016, Terça-feira, às 15h
Não funcionou, o cliente continua sem dados na tela porém o .xml gerado contém os dados corretamente. Estou usando o PHP5.6 e o MyPhpAdmin 4.4, ubuntu 14
Responder
Vinícius Thiengo (1) (0)
20/04/2016, Quarta-feira, às 13h
Jemison,
Coloque seus códigos cliente e servidor (somente os trechos referente ao WebService) no pasteBin (http://pastebin.com/) para que possa verificar. Abraço
Responder
04/01/2016, Segunda-feira, às 16h
Fala ai Vinícios, Sabe dizer se o NuSOAP, voltou a ser atualizado?
Responder
Vinícius Thiengo (0) (0)
05/01/2016, Terça-feira, às 02h
Fala Davi, blz?
Acredito que não, pois no SourceForge a página está com ultima atualização em 2013 (segundo o Google). Porém pode buscar outras libraries no Packagist.org (https://packagist.org/search/?q=soap), dê uma olhada no link. Abraço
Responder
05/01/2016, Terça-feira, às 09h
Uma pena né!  Gostei bastante do nuSOAP, mas infelizmente não vai dar para usa-lo mais!
Responder
Paulo Henrique (1) (0)
07/10/2015, Quarta-feira, às 10h
Gostaria de saber a diferenca entre usar o soap e nosoap ??
Responder
Vinícius Thiengo (0) (0)
07/10/2015, Quarta-feira, às 18h
Fala Paulo Henrique, blz?
Na verdade o NuSOAP é apenas um caminho / lib para facilitar o uso do SOAP no PHP, ambos são SOAP. Abraço
Responder
15/07/2015, Quarta-feira, às 15h
Boa Tarde Thiengo, fiz o seu exemplo sobre WS e estou com uma dúvida. Quando tenho vários métodos no WS, preciso realizar o registro de todos ? eu fiz o registro de todos e sempre quando executo a chamada a parte de descrição dos métodos aparece junto com o resultado.
O que pode ser isso ?
Responder
Vinícius Thiengo (0) (0)
16/07/2015, Quinta-feira, às 11h
Fala Diogo, blz?
Se vc não for permitir que os consumidores de seu WebService consumam alguns dos serviços, não precisa cadastra-los, caso contrário vc deve, pois senão os consumidores (outros developers) não saberão como utiliza-los. Quanto aos resultados apresentados, na verdade é como será a resposta do do serviço registrado no WebService, para os consumidores saberem como trabalha-la. Abraço
Responder
09/07/2015, Quinta-feira, às 15h
cara tenho uma dúvida:
Estou conseguindo usar o nusoap tranquilo, mas me bateu uma preocupação.
No caso do exemplo que vc passou e até mesmo o atual codigo que estou usando, estou passando poucos parametros:

$servidor->register(
'exemplo',
array('nome'=>'xsd:string',
'idade'=>'xsd:int'),
array('retorno'=>'xsd:string'),
'urn:Servidor.exemplo',
'urn:Servidor.exmeplo',
'rpc',
'encoded',
'Apenas um exemplo utilizando o NuSOAP PHP.'
);

então a function que vc usa recebe os campos idade e nome:

function exemplo($nome, $idade){
return($nome.' -> '.$idade);
}

Mas me veio a preocupação, se por um acaso a wsdl contenha 50 parametros?  não será possivel passar os 50 assim pois vai dar erro!

function exemplo(n1, n2 ..... n50 ){
return($nome.' -> '.$idade);
}

Tem como eu passar o Array? se sim pode me dar uma força? já tentei algumas vezes e não consegui!
Responder
Vinícius Thiengo (0) (0)
09/07/2015, Quinta-feira, às 15h
Fala Davi, blz?
Veja esse stackoverflow (http://stackoverflow.com/questions/26502512/passing-an-array-to-web-service-php-nusoap), veja a pergunta e a resposta, pois o camarada solucionou esse problema.

Porém acredito que se vc pegar seu array e transforma-lo para JSON (com PHP vc consegue fazer isso apenas chamando json_encode()) e então enviar esse JSON como se fosse uma simples String e então no WebService apenas utilizasse a função json_decode() esse problema que vc está tendo seria solucionado de maneira mt mais fácil, até mais fácil que a resposta do stack. Vc pode ter uma dor de cabeça se a linguagem cliente que estiver utilizando (a que consome e envia dados para o WebService NuSOAP) não oferecer um meio simples de transformar um array em uma String. Abraço
Responder
30/06/2015, Terça-feira, às 14h
Boa tarde!  Cara usei seu código , porém não apresenta nenhum resultado.... Olha isso:
servidor.php
<?php

include 'lib/nusoap.php';


$servidor = new nusoap_server();
$servidor -> configureWSDL('urn.Servidor');


$servidor->register('exemplo',
                 array('nome'=>'xsd:string' ,
                       'idade'=>'xsd:string'),
                 array('retorno'=>'xsd:string'),
                 'urn:Servidor.exemplo',
                 'rpc',
                 'encoded',
                 'Processo Seletivo' );

function exemplo ($nome, $ideade){
    return($nome.'-->'.$idade);
}

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$servidor->service($HTTP_RAW_POST_DATA);

$handle = fopen('log.xml', 'w');
fwrite($handle, $HTTP_RAW_POST_DATA);
fclose($handle);
?>
E cliente.php:
<?php
       require('lib/nusoap.php');
       $client = new nusoap_client('http://webservice.zeus.com.br/soap/fiergs/processo_seletivo/servidor.php?wsdl', 'wsdl');
      
       $dados = array(
               'nome' => 'Davi',
               'idade' => 39 );
       $result = $client->call('exemplo', $dados);
       echo utf8_encode($result);
       print ('Resuldato ==>'.  $result);
?>
Seria alguma coisa de configuração ou versão do PHP?
Responder
Vinícius Thiengo (0) (0)
01/07/2015, Quarta-feira, às 02h
Fala Davi, blz?
No vídeo mostro uma configuração no php.ini que deve ser realizada, seguiu essa orientação? Está sendo apresentada alguma mensagem de erro depois da tentativa de rodar? Se sim, qual? Abraço
Responder
01/07/2015, Quarta-feira, às 11h
Opa, muito obrigado pela resposta rápida, aparentemente era isso mesmo! mandou bem!  ótimo vídeo e me ajudou. Já tinha trabalhado com SOAP antes mas nunca com PHP.
Responder
08/05/2015, Sexta-feira, às 14h
Olá Thiengo,

Seu Video esta muito bom, porém eu estou tentando colocar um array que vai vir por parte do cliente, estou com alguns testes aqui, porém eu não consigo pegar os valores do outro lado( server), vc teria alguma ajuda?
Responder
Vinícius Thiengo (0) (0)
09/05/2015, Sábado, às 09h
Fala Bruna, blz?
Veja se a parte "What about list of walks" desse post (http://www.wackylabs.net/2004/07/creating-a-web-service-and-wsdl-using-nusoap/) lhe ajuda. Nele há um exemplo de resposta em array(), terá de adaptar para recebimento em array. Uma opção é vc juntar todas as opções do array em um só string com um separador comum (__SEPARATOR__, por exemplo). Pode utilizar a função implode() para juntar. E então enviar um só dado que seria uma string, no servidor vc utilizaria um explode(__SEPARATOR__) na string obtida e então teria o array novamente. Abraço
Responder
Tiago Farias (0) (0)
12/12/2014, Sexta-feira, às 10h
Olá Thiengo!

Se liga cara, eu criei um ws como o da vídeo aula, porém acabei precisando fazer modificações e etc... gostaria de saber como posso configurar o register para enviar um array de arrays como parametro por exemplo:

<pessoas_fisicas>

    <pessoa_fisica>
        <nome></nome>
        <cpf></cpf>
    </pessoa_fisica>

    <pessoa_fisica>
        <nome></nome>
        <cpf></cpf>
    </pessoa_fisica>

</pessoas_fisicas>

VALEUUU!!!  E parabéns pelo seu trabalho, sucesso!
Responder
Vinícius Thiengo (0) (0)
13/12/2014, Sábado, às 04h
Fala Tiago, blz?
Não cheguei a utilizar o SOAP com array ainda, mas essa dúvida já é antiga, nos comentários do YouTube havia respondido um camarada com a mesma dúvida, mas o link que informei a ele não está ativo mais. Encontrei os links abaixo no stackoverflow, acho que podem lhe ajudar, qualquer coisa volte ae se não rodar. Abraço

http://stackoverflow.com/questions/14380788/return-array-of-arrays-nusoap-php-web-service

http://stackoverflow.com/questions/18779953/how-to-deal-with-array-complextype-in-nusoap
Responder
13/10/2014, Segunda-feira, às 04h
Parabens Thiengo pelo tutorial, Excelente!!!
O tutorial me interessou para estudar WEB SERVICES, mas pesquisei e não achei muito conteudo da lib NUSOAP... Poderias me indicar um endereço onde posso achar conteudo de NUSOAP?

OBRIGADO DESDE JA, CORDIALMENTE
Responder
Vinícius Thiengo (1) (0)
14/10/2014, Terça-feira, às 01h
Fala Tomas, blz?
Encontrei alguns aqui, ve se lhe ajudam:

http://users.skynet.be/pascalbotte/rcx-ws-doc/phpclient.htm

http://www.phonesdevelopers.com/1768176/

http://diegofeijo.wordpress.com/2013/09/13/android-nusoap-com-autenticacao/

Abraço
Responder
04/08/2014, Segunda-feira, às 16h
Testei aqui, mas o cliente nao esta imprimindo nada. Nem no projeto que eu fiz e nem com o projeto que voce despinibilizou.
Sabe o motivo?

Ja testei alterar/retirar o encode, mudei de echo para print... Mas nada...
Responder
Vinícius Thiengo (1) (0)
05/08/2014, Terça-feira, às 02h
Fala Ramon, blz?
Verifica em seu php.ini se a printagem de erro está ativada e se a linha no php.ini que carrega o WebService nativo do php está comentada. Abraço
Responder