我正在尝试使用SOAP
调用PHP
方法。
以下是我的代码:
$wsdl = 'LINK/RHOWS_RS_REQUISICAO?wsdl';
$options = array('login' => 'MYLOGIN','password' => 'MYPASS');
$xml = <<<EOT
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rhow="http://xmlns.oracle.com/orawsv/RHOWS/RHOWS_RS_REQUISICAO">
<soapenv:Header/>
<soapenv:Body>
<rhow:RHOWS_RS_REQUISICAOInput>
<rhow:P_IDENTIFICACAO-VARCHAR2-IN>ASDASDADASDA</rhow:P_IDENTIFICACAO-VARCHAR2-IN>
<rhow:P_RESULT-XMLTYPE-OUT/>
</rhow:RHOWS_RS_REQUISICAOInput>
</soapenv:Body>
</soapenv:Envelope>
EOT;
//echo $wsdl;
$client = new SoapClient($wsdl, $options);
现在我想打印请求,但没有显示任何内容:
$body = new SoapVar($xml,XSD_ANYXML);
**$result = $client->RHOWS_RS_REQUISICAO($body);**
print $client->__getLastRequest()."\n";
print $client->__getLastResponse()."\n";
我把
var_dump($client->__getFunctions());
结束它返回:
array(1) { [0]=> string(83) "RHOWS_RS_REQUISICAOOutput **RHOWS_RS_REQUISICAO**(RHOWS_RS_REQUISICAOInput $parameters)" }
所以使用了
$result = $client->RHOWS_RS_REQUISICAO($body);
但北上..
答案 0 :(得分:0)
在您的代码中,您没有调用SOAP Web服务,您使用特定的wsdl定义配置SOAP客户端(您可以将wsdl的url复制到浏览器中,也可以看到结构。试试这个:
$client->__getFunctions();
列出此wsdl定义的所有功能
然后通过这种方式调用一个函数
$response = $client->someFunction($foo, $bar);
之后你应该返回这个函数,因为你的soap客户端真的发起了一个请求
print $client->__getLastRequest()."\n";
print $client->__getLastResponse()."\n";