WebService em PHP utilizando NuSOAP

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog. Você receberá um email de confirmação. Somente depois de confirma-lo é que poderei lhe enviar os conteúdos exclusivos.

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

WebService em PHP utilizando NuSOAP

Vinícius Thiengo25/11/2013
(9718) (48) (20) (1)
Go-ahead
"O que as pessoas devem tentar fazer é trabalhar no que gostam, procurando áreas em que sua vocação e talento façam diferença. É fundamental ser paciente. É vital manter o otimismo sempre."
Carlos Slim
Receitas Android
Capa do livro Receitas Para Desenvolvedores Android
TítuloReceitas Para Desenvolvedores Android
CategoriaDesenvolvimento Android
AutorVinícius Thiengo
Edição
Ano2017
Capítulos20
Páginas934
Acessar Livro
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
Acessar Livro
Conteúdo Exclusivo
Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
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, e com prioridade, os conteúdos Android exclusivos do Blog.
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
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
Show de bola Jemison. Abraço
Responder
22/04/2016
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
Jemison, coloque aqui o link.
Responder
18/04/2016
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
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
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
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
Fala ai Vinícios, Sabe dizer se o NuSOAP, voltou a ser atualizado?
Responder
Vinícius Thiengo (0) (0)
05/01/2016
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
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
Gostaria de saber a diferenca entre usar o soap e nosoap ??
Responder
Vinícius Thiengo (0) (0)
07/10/2015
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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