2015-05-07 89 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服務,我連接到它沒有...沒什麼大不了我們一起移動。

相關問題