首頁 > 後端開發 > php教程 > php實作webservice(實測C#及java可呼叫)

php實作webservice(實測C#及java可呼叫)

不言
發布: 2023-03-23 07:06:01
原創
4501 人瀏覽過

這次的這篇文章給大家分享的是php實作webservice(實測C#及java可呼叫),有需要的朋友可以參考一下

使用PHP搭建起一個其他語言如C#、JAVA可用的Webservice的方法與網路上大多數所述的用PHP建立的webservice感覺是有差別的。對於介面的輸入參數及輸出參數較為複雜的情況下,這裡建議直接將輸入參數及輸出參數統一為XML string或是Json string。這裡著重介紹的是怎麼實作一個webservice,而對於輸入輸出參數的格式,如何操作XML string就不多介紹,一搜一大把,但是要注意對於XML和json的話要注意參數的過濾和檢查。該文介紹的是帶有wsdl檔案的webservice,no-wsdl的方式較為簡單,這裡不做介紹

#檢查並開啟soap擴展

首先需要開啟soap擴展,即將php.ini檔案中的extension=php_soap.dll前的分號去掉然後重新啟動apache。查看phpinfo是否開啟soap。具體如何操作這裡跳過,實作webservice是需要soap擴充的。

在VS中建立C#的webservice

網路上找到的php生產wsdl的方式類別產生的wsdl檔案從而搭建的webservice只有php能用,簡直不要再坑了。所以這裡就以曲線救國的方式來產生wsdl文件。先透過C#搭建一個webservice來產生wsdl,之後只要稍加更改就可以用了。

1.新專案->ASP.NET Web應用程式建立一個工程;
php實作webservice(實測C#及java可呼叫)
#2.b.右鍵解決方案->添加->新建項選擇Web服務(ASMX);
php實作webservice(實測C#及java可呼叫)
3.編寫接口,注意C#中要發佈出來的function前要加[WebMethod],其中可能還要新建一些類別:
php實作webservice(實測C#及java可呼叫)
4.寫完成按ctrl+F5運行出現如下所示,之後在url後面加上?wsdl會出現如下圖所示的wsdl ,另存為就可以了。
php實作webservice(實測C#及java可呼叫)
php實作webservice(實測C#及java可呼叫)
5.將產生的WSDL檔案中的裡的location改為PHP webservice的發佈位址:
php實作webservice(實測C#及java可呼叫)
6.PHP編寫webservice介面:
php實作webservice(實測C#及java可呼叫)
7.發布webservice:

<?php
/**
 * Created by PhpStorm.
 * User: Damon
 * Date: 2018/1/26
 * Time: 11:16
 */
//引入自动加载
require __DIR__ . &#39;/vendor/autoload.php&#39;;

$wsdlfile=&#39;MESWebService.wsdl&#39;;//wsdl文件路径

$webserver = new \SoapServer($wsdlfile);
$webserver->setClass(\Src\MESWebService::class);
$webserver->handle();
登入後複製

注意,Web Service的方法在宣告時至多一個參數,  可是呼叫此方法時就必須傳value1,value2兩個參數。 (這點十分令人費解,我的理解是,在呼叫該方法時,系統把所有參數都放到一個物件裡傳過來)。回傳值也很特別,不是直接回傳$arry,而是把它放到一個物件裡再回傳。傳回值中key值對應的是wsdl中的名稱。

使用C#進行呼叫測試

1.新專案->ASP.NET Web應用程式建立一個工程,與前面的一樣;
2.右鍵項目下面的引用->新增服務引用,點選進階跳出服務引用設置,點選裡面右下角的新增Web引用,出現如下圖所示:
php實作webservice(實測C#及java可呼叫)

3.在URL填入已發佈的webservice服務的位址,回車後若正確出現下圖,之後依需求修改Web引用名後點選新增引用:
php實作webservice(實測C#及java可呼叫)
4.然後右鍵點選項目->新增->新建項,選擇web窗體,編輯.aspx.cs檔案的內容。
php實作webservice(實測C#及java可呼叫)
php實作webservice(實測C#及java可呼叫)
5.e.最後按ctrl+F5運行可以查看對應的輸出,如下圖所示,說明php實作的webservice在C#中可以正確呼叫。
php實作webservice(實測C#及java可呼叫)


相關推薦:

php實作查詢mysql並且快取到redis的方法

php實作socket的方法

php實作關於var_dump和echo輸出多變數的測試

#

以上是php實作webservice(實測C#及java可呼叫)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板