使用PHP使用SOAP Web服务

时间:2015-04-14 14:58:44

标签: php web-services soap complextype

我在使用PHP调用Web服务时遇到问题。

该服务的提供者给出了一个使用参数的例子:

<?xml version="1.0" encoding="UTF-8"?>
<Parameters>
    <START_DATUM>2010-07-20</START_DATUM>
    <ENDE_DATUM>2010-07-20</ENDE_DATUM>
    <GRUPPE_ID>231</GRUPPE_ID>
</Parameters>

这是我用来执行调用的代码(什么都不返回):

$client = new SoapClient($wsdl);
$params = "<Parameters><START_DATUM>2015-03-31</START_DATUM><ENDE_DATUM>2015-03-31</ENDE_DATUM><GRUPPE_ID>231</GRUPPE_ID></Parameters>"
$result=$client->GetXMLResultOf("SIEMS_Planung", $params);
var_dump($result);

问题是参数的格式。

这是XMLSchema:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:element name="Parameters">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="START_DATUM" type="xs:date"/>
                <xs:element name="ENDE_DATUM" type="xs:date"/>
                <xs:element name="GRUPPE_ID" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

如何格式化参数以使其工作? 我尝试了许多我在互联网上找到的代码,但没有任何效果。

提前致谢。

编辑1:

GetXMLResultOf方法是Web Service的方法。 签名是:GetXMLResultOf(Profil-Name,Parameter)

答案:

我发现了问题......&lt;参数&GT;在我的字符串$ params中不需要。 这很奇怪,因为他需要另一个简介。

感谢您的回复以及您花时间回答我的时间。

1 个答案:

答案 0 :(得分:0)

我看不到类SoapClient的GetXMLResultOf方法: http://php.net/manual/fr/class.soapclient.php

但是,这是一个典型的Soap呼叫的例子:

try {

  $client = new SoapClient($wsdl);
  $params = array('START_DATUM' => '2015-03-31',
                  'ENDE_DATUM' => '2015-03-31',
                  'GRUPPE_ID' => '231');

  $response = $client->__soapCall($method, array($params));
  return $response->return;

}
catch (SoapFault $e) {
  error_log($e->detail);
}