如何在php soap中调用树液肥皂wsdl?

时间:2019-01-17 09:06:43

标签: php soap wsdl

PHP / SOAP

$client = new SoapClient('http://xxx.xxx.xxx.xx:xx/Sap/.../sap-client?wsdl');

$authentication = array(
   'login' => '*****',     
   'password' => '*****'
);

$params = array(
    "auth" => $authentication
 );

$users = $client->Func1($params);
var_dump($users);

for ($i = 0, $count = count($users->s1); $i < $count; $i++) {
    echo "No:" . $users->s1[$i]->no . "<br/>\n";
    echo "Name:" . $users->s1[$i]->name . "<br/>\n";
 }

SAP / SOAP

<xsd:import namespace="urn:sap-com:document:sap:rfc:functions"/>
<xsd:complexType name="s1">
<xsd:sequence>
<xsd:element name="no" type="n0:numeric8"/>
<xsd:element name="name" type="n0:char40"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="t2">
<xsd:sequence>
<xsd:element name="item" type="tns:s1" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="Func1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Tbl" type="tns:t2"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Func1Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Tbl" type="tns:t2"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

嗨,我想用php / soap来调用sap wsdl。但是执行它后出现了“ SOAP-ERROR:Encoding:对象没有'Tbl'属性”错误。现在,我收到了“ PHP致命错误:SOAP错误:解析WSDL:无法从'url'加载到外部加载失败”的错误。我无法修复我的错误。有人能帮我吗? 预先感谢!

1 个答案:

答案 0 :(得分:0)

如果您想轻松地用PHP调用此SOAP WS,我强烈建议您使用WSDL to PHP生成器,因为它将简化请求的构造,并且使用OOP方法处理所有请求总是更好。

此外,由于具有自动完成功能,使用PhpStorm或Eclise PDT等适用于PHP的优秀IDE是轻松使用生成的PHP SDK的最低要求。

我建议您尝试一下PackageGenerator项目,该项目已经完成并且使用了作曲器。