如何从PHP Web服务获取响应SOAP信封?

时间:2014-04-01 16:35:31

标签: php soap soapserver

我认为这是一个简单的问题。我用SoapServer和一个简单的客户端创建了一个简单的PHP Web服务。我在soapUI上测试了这个,我得到了这个:enter image description here

我知道是因为var_dump()但我不知道如何让它响应带有请求数据的Response SOAP Envelope。

PHP服务器:

<?php

   if(!extension_loaded("soap")){

   dl("php_soap.dll");

}

   ini_set("soap.wsdl_cache_enabled","0");
   $wsdl='InterconexionTest.wsdl';
   function ejecutarTransaccionTest($input){
    return (object)array('ejecutarTransaccionTestReturn'   => '0210B22080010E80800000000000000000183550000000000000000221150711577994022106520900                  000056    0000023041902000002     111111     REC     784 0117507902             MARINA DE GUERRA DEL01000000000682001000003          3000          REC604S                                                                                 00103FFFFFRECT001-0062563    17507902        200204220000000000000000021277RECT001-0076270    17507902        200205220000000000000000022225RECT001-0097858    17507902        200206220000000000000000008796                                                                                                                                                                                                                ');
   }
   $server = new SoapServer($wsdl);
   $server->AddFunction("ejecutarTransaccionTest");
   $server->handle();
?>

PHP客户端:

<?php
try{

    $wsdl='InterconexionTest.wsdl';
    $sClient = new SoapClient($wsdl);
    $response = $sClient->ejecutarTransaccionTest("Input");
    var_dump($response);

} catch(SoapFault $e){
    var_dump($e);
}
?>

有人可以告诉我怎么做?

1 个答案:

答案 0 :(得分:1)

首先,我很抱歉以前没有能够自己回答这个问题,但我已经搜索了几个小时而且很容易错过这个。

只是在端点添加?wsdl解决了这个问题,并使用servidor.php而不是cliente(servidor =英文服务器.SoapServer)

事先感谢您的关注和理解。