【发布时间】:2011-09-06 16:05:32
【问题描述】:
大家好,我正在尝试使用 SoapClient 使用 PHP 来使用 .NET,但是当我的 php 客户端发送请求时出现以下问题,.NET WS 没有以正确的格式获取请求 xml,这是我的代码,我希望有人帮帮我,谢谢ind建议
class login {
public $User;
public $Password;
}
$logr = new login;
$logr->User = 'user';
$logr->Password = 'pass';
try {
$client = new soapclient ("http://..../Service.asmx?WSDL", array('classmap' => array('LoginRequest' => 'login'),));
print_r($logr);
$client -> Login ($logr);
}
catch (Exception $e) {
echo "Error!<br />";
echo $e -> getMessage ();
}
当我在 .net 应用程序上测试我的 .net 网络服务器时,我发送了这个,它运行良好
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2011/XMLScheme">
<soap:Body>
<Login
xmlns="http://tempuri.org">
<LoginRequest>
<User>user</User>
<Password>pass</Password>
</LoginRequest>
</Login
</soap:Body>
</soap:Envelope>
但是当我在 php 上测试它时,我得到了这个,并且这个错误服务器无法处理请求。 ---> 对象引用未设置为对象的实例。
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope"
xmlns:ns1="http://tempuri.org"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<SOAP-ENV:Body>
<Login
xmlns="http://tempuri.com"
xso:type="ns1:LoginRequest">
<User>user</User>
<Password>pass</Password>
</Login>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
【问题讨论】:
-
你能说得更具体点吗?服务的预期格式是什么,soapClient 生成的格式是什么?另外,你能看到 $client->getLastRequest() 和 $client->getLastResponse() 返回什么吗?
-
我用我得到的结果编辑了我的问题......谢谢建议我可以做 $client->__getFunctions() 并且效果很好......
标签: php .net web-services soap