2015-05-07 87 views
2

我通过PHP和SOAP连接到Microsoft .NET Webservice。我被告知这是一个“web服务”,所以我的印象是它应该像我过去一直使用的其他“web服务”一样。没有找到匹配的ExtType found

调用不涉及参数似乎工作正常。例如,

$client->GetContactsDataTableXMLSchema(); 

而结果是你可能会期望的,一个联系表的XML模式。那里没有问题。

然而,

任何时候,我尽量让涉及的参数都见鬼挣脱打个电话,所有我曾经得到的是错误:

No matching ExtType found 

这是一个标准的MS .NET错误?这是我在PHP肥皂中做错了吗?我无法真正分享肥皂的终点,因为它与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'); 

前三个参数给我是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> 

回答

0

OK,

敲我的头,运行到墙上以后这里是我发现,我与你分享,所以如果你有同样的问题,你知道该怎么做。

某些webservices要求在调用函数时将参数包装到关联数组中。

许多web服务只是让你把参数放在通常的调用中。这是工作和参数是关键值数组。

$client->FetchDiasContactV5(array(
    'applicationName' => 'MyVastiauWebApplication' , 
    'workspace' => '100' , 
    'addressTable' => 'Client' , 
    'addressID' => '987654321')); 

调用这样的功能:

$client->FetchDIASContact('MyVastiauWebApplication' , '100' , 'Client' , '987654321'); 

没有工作,但我敢肯定,在其他web服务,我连接到它没有...没什么大不了我们一起移动。

相关问题