2013-03-21 65 views
0

我们正在将一项Web服务写入UNIFACE 9.3。我们的服务提供了一个WSDL。我们使用SOAPUi进行第一次测试,并且我们使用PHP进行了一些更多的测试,但PHP没有给我们提供任何帮助!为什么?使用PHP的SOAP请求不起作用 - PHP中没有答案getLastRequest

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:uniface:applic:wrapped:services:WEBSOAPWSV"> 
<soapenv:Header/> 
<soapenv:Body> 
    <urn:INFO> 
     <urn:SP_IN>OCCURRENCE=TEST</urn:SP_IN> 
    </urn:INFO> 
</soapenv:Body> 
</soapenv:Envelope> 

这是我们的PHP-测试集:

$client = new SoapClient("http://patch-server:8080/uniface/services/websoapwsvdlw?wsdl"); 
var_dump($client->__getFunctions()); 
$args = array('OCCURRENCE', 'TEST'); 
$result = $client->__soapCall('INFO', $args); 
echo "Request:\n" . $client->__getLastRequest() . "\n"; 

PHP-getFunctions提供这样的:

array(6) { 
[0]=> string(41) "ACCEPTResponse ACCEPT(ACCEPT $parameters)" 
[1]=> string(35) "EXECResponse EXEC(EXEC $parameters)" 
[2]=> string(35) "INFOResponse INFO(INFO $parameters)" 
[3]=> string(41) "INSERTResponse INSERT(INSERT $parameters)" 
[4]=> string(35) "QUITResponse QUIT(QUIT $parameters)" 
[5]=> string(41) "UPDATEResponse UPDATE(UPDATE $parameters)" } 

答案是什么!为什么?非常感谢。

回答

1

我真的不知道SOAP和我刚刚问了一个问题关于SOAP调用此我自己,但如果你稍微改变了这种代码:

// change here 
$options  = array('trace' => 1, 'exceptions' => 1); 

$client = new SoapClient("http://patch-server:8080/uniface/services/websoapwsvdlw?wsdl", $options); 

var_dump($client->__getFunctions()); 
$args = array('OCCURRENCE', 'TEST'); 

// change here.. 
$result = $client->INFO($args); 
echo "Request:\n" . $client->__getLastRequest() . "\n"; 
+0

感谢您的帮助。 ..但这仍然不起作用;-(没有要求! – 2013-04-03 05:54:56

1
$client = new SoapClient($url, array("trace" => 1));