使用PHP的SOAP请求不起作用 - PHP getLastRequest没有答案

时间:2013-03-21 13:09:09

标签: php soap soap-client

我们正在为UNIFACE 9.3编写一个Web服务。我们的服务提供WSDL。我们使用SOAPUi进行第一次测试,我们使用PHP进行更多测试,但PHP没有给我们任何东西!为什么呢?

<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)" } 

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

2 个答案:

答案 0 :(得分: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";

答案 1 :(得分:1)

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