【发布时间】:2015-05-07 07:33:55
【问题描述】:
我通过 PHP 和 SOAP 连接到 Microsoft .NET Web 服务。有人告诉我这是一个“网络服务”,所以我的印象是它的行为应该像我过去使用过的其他 954 个“网络服务”。
不涉及参数的调用似乎可以正常工作。例如,
$client->GetContactsDataTableXMLSchema();
结果是您可能期望的,一个联系人表的 XML 模式。没有问题。
然而,
每当我尝试进行涉及参数的调用时,一切都会崩溃,而我得到的只是错误:
No matching ExtType found
这是一个标准的 MS .NET 错误吗?这是我在 PHP Soap 中做错的事情吗?我不能真正分享肥皂端点,因为它与 WSDL 一样是私有/机密的。
这是我正在调用的函数:
<?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>
<FetchDIASContact xmlns="http://www.cac.be/">
<applicationName>string</applicationName>
<workspace>string</workspace>
<addressTable>string</addressTable>
<addressID>string</addressID>
</FetchDIASContact>
</soap:Body>
</soap:Envelope>
我是这样称呼它的。
$client->FetchDIASContact( 'MyVastiauWebApplication' , '100' , 'Client' , '987654321' );
前 3 个参数是作为 web 服务制造商提供给我的,并在他们制作的 C# 示例中定义。最后一个参数是我们想要获取的客户端,它们在他们提供的 Visual Studio C# 示例应用程序中工作。
最后,
当实际读取和解码结果中的数据返回结果时,我是否还有机会?
我有一种不好的感觉,结果将是一个必须从字节流中解码的 MS .NET 数据表。
这是我将得到的结果。
<?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>
<FetchDIASContactResponse xmlns="http://www.cac.be/">
<FetchDIASContactResult>string</FetchDIASContactResult>
<addressesDT>base64Binary</addressesDT>
<fieldsDT>base64Binary</fieldsDT>
<linksDT>base64Binary</linksDT>
</FetchDIASContactResponse>
</soap:Body>
</soap:Envelope>
【问题讨论】:
标签: c# php .net web-services soap