PHP SOAP请求不正确
问题描述:
我尝试建立以下SOAP请求:PHP SOAP请求不正确
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<CheckSomething xmlns="http://service.mydomain.com/">
<User>
<username>user123</username>
<password>geheim</password>
</User>
<ItemXY>something</ItemXY>
</CheckSomething>
</soap:Body>
</soap:Envelope>
这是我的PHP代码
$soapClient = new SoapClient("http://service.mydomain.com/Services.asmx?wsdl",array("trace" => 1));
$Param = array (
'username' => "user123",
'password' => "geheim"
);
$info = $soapClient->__call("CheckSomething", array("User" => $Param,"ItemXY" => "something"));
echo "Request :\n".htmlspecialchars($soapClient->__getLastRequest()) ."\n";
结果是:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://service.mydomain.com/">
<SOAP-ENV:Body>
<ns1:CheckSomething/>
<param1>something</param1>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
这是WSDL本服务部分:
<s:element name="CheckSomething">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="User" type="tns:Validation"/>
<s:element minOccurs="0" maxOccurs="1" name="ItemXY" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
任何人都可以帮助我形成正确的SOAP请求吗?
如何在结果中删除ns1
标记给出正确的Array User和ItemXY?
答
后,我修改PHP代码:
$soapClient = new SoapClient("http://service.mydomain.com/Services.asmx?wsdl",array("trace" => 1));
$user_param = array (
'username' => "user123",
'password' => "geheim"
);
$service_param = array (
'User' => $user_param,
"ItemXY" => "something"
);
$info = $soapClient->__call("CheckSomething", array($service_param));
echo "Request :\n".htmlspecialchars($soapClient->__getLastRequest()) ."\n";
它的作品!
+0
感谢您的回复。对于读者来说:有时只是将你的参数数组包装到数组中就足够了。 – 2015-08-20 19:42:30
看起来像你nedd来修改你的wsdl文件 – 2012-04-24 11:44:13
我无法访问wsdl文件,这个文件来自一个客户 – kockiren 2012-04-24 11:53:24
所以你的请求不执行? soap客户端可以很好地使用SoapClient和预定义的WSDL文件。 – 2012-04-25 04:30:09