Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ghean

Zend_Soap

Recommended Posts

Olá.

 

Gostaria de saber se alguém já trabalhou com a Zend_Soap.

Gostaria de obter maiores informações sobre a classe e também algumas praticas ou dicas sobre segurança.

 

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os dois. ^_^

 

Como deve ser feita a comunicação entre os dois?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então... não sei a diferença entre eles.

 

Mas o que preciso é o seguinte:

 

Minha aplicação esta rodando no servidor A, em determinado momento preciso que seja executado algumas operações no servidor B.

Esse servidor B será apenas para armazenagem de alguns arquivos.

 

Por exemplo, acesso minha aplicação no servidor A e após o cadastro, acesso o servidor B e passo uma key de cadastro. o webservice no servidor B valida essa key e cria uma estrutura de pastas, por exemplo.

 

Algo desse tipo...

 

Gostaria de saber se da pra ser feito dessa forma e quais os riscos.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

No servidor B você vai criar um Server.

 

No servidor A você vai consumir o serviço do servidor B (Client).

 

Sobre as questões de segurança, é seguro como qualquer webservice é. O que você precisa é estudar um pouco sobre como criar um Webservice. Conceito, formas de trabalhar, segurança... Algo nesta linha, independente da linguagem utilizada. Depois você estuda um pouco sobre o Zend_Soap, que na verdade é uma implementação da classe Soap do PHP. Ou pode ser que você veja que outra forma de trabalhar com Webservice é mais adequado à sua necessidade.

 

Analisando por cima a sua situação, não sei se seria necessário criar webservice, já que não há necessidade de retornar dados do servidor B para o servidor A (ou há?). Talvez só criar uma rotina com cURL seja mais simples de fazer, já que você pode enviar autenticação por ele.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há possibilidade de fazer um upload para o sevidor B atravez da aplicação que esta no servidor A?

 

Isso também pode ser feito pelo cURL?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você acha melhor via cURL ou algo com o SOAP?

 

Pode me ajudar a criar essa app?

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, o Soap e o cURL tem utilizações bem distintas. O Soap você deve utilizar se necessitar de algum resultado do server B. Caso contrário, se for só para enviar dados do server A para o B e o B fazer alguma rotina, mas que não precise retornar nenhuma informação, cURL vai servir perfeitamente para o que você precisa.

 

Uma das utilizações do cURL é simular o envio de um formulário, mas sem que haja o formulário (esta é uma explicação bem simplória, OK?).

 

Agora, sobre te ajudar a criar, posso te ajudar nas dúvidas que você tiver. Como você está utilizando o Zend Framework, utilize o Zend_Http_Client_Adapter_Curl, que é a abstração do cURL.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal.

 

Nesse caso o que realmente farei é enviar os dados de um servidor par o outro e executar somente um rotina.

 

Irei ler sobre Zend_Http_Client_Adapter_Curl e fazer alguns testes, qualquer dúvida torno a postar.

 

 

Mais uma vez muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Conforme exemplo, fiz o trecho abaixo para subir uma imagem pela aplicação rodando localmente (servidor A) para um servidor onde se encontra a aplicação online (servidor B).

 

$putFileSize   = filesize( APPLICATION_PATH . "\data\koala.jpg" );
       $putFileHandle = fopen( APPLICATION_PATH . "\data\koala.jpg", "r");

       $adapter = new Zend_Http_Client_Adapter_Curl();
       $client = new Zend_Http_Client( "http://desenv.meusite.com.br/koala.jpg" );
       $client->setAdapter($adapter);

       $adapter->setConfig(array(
           'curloptions' => array(
               CURLOPT_URL        => "ftp://login:senha@desenv.meusite.com.br/koala.jpg",
               CURLOPT_UPLOAD     => 1,
               CURLOPT_INFILE     => $putFileHandle,
               CURLOPT_INFILESIZE => $putFileSize
           )
       ));

      $client->request("PUT");

 

Verificando no servidor B, vi que a imagem foi transferida normalmente.

Mas a aplicação local sempre retorna um erro:

 

Exception information:

Message: Error in cURL request:
Stack trace:

#0 C:\wamp\www\teste\library\Zend\Http\Client.php(987): Zend_Http_Client_Adapter_Curl->write('PUT', Object(Zend_Uri_Http), '1.1', Array, '')
#1 C:\wamp\www\teste\application\controllers\IndexController.php(70): Zend_Http_Client->request('PUT')
#2 C:\wamp\www\teste\library\Zend\Controller\Action.php(513): IndexController->testeAction()
#3 C:\wamp\www\teste\library\Zend\Controller\Dispatcher\Standard.php(295): Zend_Controller_Action->dispatch('testeAction')
#4 C:\wamp\www\teste\library\Zend\Controller\Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#5 C:\wamp\www\teste\library\Zend\Application\Bootstrap\Bootstrap.php(97): Zend_Controller_Front->dispatch()
#6 C:\wamp\www\teste\library\Zend\Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#7 C:\wamp\www\teste\public\index.php(33): Zend_Application->run()
#8 {main}  

 

Seria assim mesmo a utilização dessa classe?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.