2009-02-07 65 views
4

任何人都可以給我一個小而簡單的例子,說明如何做到這一點?或者如何開始的一些好的指針。C#&PHP:C#使用的PHP Web服務的簡單例子

我想創建一個C#客戶端,可以發送一個文件或一些文本或xml或其他任何東西到Web服務或用PHP編寫的類似東西,PHP Web服務將其存儲在文件或數據庫中,或者類似的東西。不知道如何開始。

我想第一步就是創建php的web服務。然後它可能會很容易在C#中使用它,因爲我大概可以使用vs中的「添加Web引用」按鈕,然後從那裏去?

回答

3

你可以看看這個tutorial顯示如何使用PHP開發一個web服務。正如你所提到的,.NET客戶端將非常簡單。

+0

看起來有趣!謝謝。將閱讀=) – Svish 2009-02-07 12:19:04

1

我不熟悉你打算成爲消費者的問題的C#方面。但是,如果您不介意使用庫來加快啓動並運行Web服務的過程,則可以使用Zend Framework快速設置一個。查看設置Zend_Rest_Server的文檔。

1

只是一個想法......如果服務只需要支持簡單的操作,比如「上傳文件」,或許可以避免使用WSDL?我認爲PHP可以處理原料的要求 - 這樣你就可以使用哦,這麼複雜的.NET客戶端:

using (WebClient client = new WebClient()) 
    { 
     client.UploadFile("http://some/upload.php", "foo.bar"); 
     client.UploadString("http://some/upload.php", "some text"); 
    } 

等。同樣,你可以經常輕鬆地使用POX/REST沒有一個正式的Web服務的複雜性合同。上面的代碼只是通過正文中的file-contents /字符串做一個簡單的HTTP請求。

+0

這當然也是一個解決方案。但你會如何......接受上傳的字符串和文件在「另一邊」? – Svish 2009-02-07 12:05:56

0

你是對的。所有您需要做的就是在PHP中創建一個簡單的Web服務,它接受request/xml /文件,然後將其存儲在數據庫中。那麼你可以使用任何技術,C#肯定使用webservice。 爲了在PHP中編寫Web服務,我認爲最好在第一步選擇您的Web服務類型。它可以是REST Web服務或SOAP或XML-RPC。這取決於您的應用程序的複雜程度。

如果您的應用程序很簡單,只需將字符串引發到webservice或文件URL,然後webservice就可以存儲該字符串,或從URL中獲取文件並將其存儲在數據庫中,我推薦REST。因爲它更簡單。就像編寫簡單的PHP腳本一樣簡單,該腳本使用它的HTTP參數作爲輸入。

但是事實上你希望它更安全或者有更復雜的需求,在PHP中使用SOAP服務很容易。如果你想使用SOAP,PHP有一個擴展名(php-soap),你可以安裝和使用PHP-SOAP的內置功能。如果您使用的是不支持該擴展的較舊版本的PHP,或者您的應用程序將託管在未安裝php-soap的地方,則有純粹的SOAP協議實現,名爲nusoap。它是開源的,工作得很好。

​​