我通过PHP和SOAP连接到Microsoft .NET Webservice。我被告知这是一个" webservice"所以我的印象是它应该像954其他" webservices"我过去曾与之合作过。
不参与参数的电话似乎工作正常。前,
$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' );
前三个参数给了我作为网络服务制造商,并在他们制作的C#示例中定义。最后一个参数是我们想要获取的客户端,它们在Visual Studio C#示例应用程序中提供了工作。
最后,
当结果实际读取和解码结果中的数据时,我是否有任何机会?
我感觉结果将是一个必须从字节流中解码的MS .NET dataTable。
这是我在工作时会得到的结果。
<?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>
答案 0 :(得分:0)
OK,
After banging my head and running into walls here is what I found, I share it with you so if you have the same problem you know what to do.
Some webservices require that when you call a function you wrap the parameters up into an associative array.
Many webservices just let you put the parameters in the call normally. This is working and the parameters are key value array.
social_id
Calling the function like this:
sha1($pass . HASH_KEY)
Did not work, however I am certain that in other webservices that I have connected to it did... No biggie we move along.