Delphi WebService 的編寫、調試、發布(IIS)、調用


下面說明如何編寫用於IIS發布的ISAPI類型的WebService。
1、 New|Other|WebServices|SOAP Server Application|這里先選擇建立Web App Debugger
    類型的WebService,因為這種類型的WebService便於調試,當我們調試好它,准備發布時再將
    此類型轉換為ISAPI類型。
2、 選擇Web App Debugger后,隨便輸入一個ClassName,這里我們輸入“Test”
3、 隨后Delphi會詢問你是否建立接口單元,選擇是,然后輸入接口的名字,我們輸入Main,
   Delphi將自動建立接口單元(名字為你輸入的接口名+Intf結束,即MainIntf)和實現接口的單
   元(名字為你輸入的接口名+Impl,即MainImpl)。到此一個空的WebService已建立好。
4、 接下來我們將編寫供別人調用的WebService函數。在此我們編寫一個簡單的例子。打開接口單元
(MainIntf),在Type后,接口聲明后添加接口函數
“function GetMsg(AMsg: string): String; stdcall;”,函數后面必須加上“stdcall”。
  

 



5、接口函數的聲明已經完成,下面就是要實現這個函數了。打開接口實現單元(MainImpl),
   在public中寫上該函數的聲明,在implement后寫該函數的實現。

6、到此,WebService已經撰寫完畢。接下來是調試。在我們新建的時候,Delphi已經為我們
   建立了一個Unit1和其窗體,在Unit1中引用接口單元(MainImpl),然后在窗體中加一個
   按鈕,在按鈕的單擊事件中調用剛才寫的WebService函數就可以調試了,
7、調試成功后就可以轉類型了,將Web App Debugger類型轉換為ISAPI類型其實很簡單,我們
   先重新建一個ISAPI類型的WebService項目,依次選擇New|Other|WebServices|
   SOAP Server Application|ISPA/…,提示是否創建接口時選擇“是”,然后輸入和剛才一
   樣的接口名,接着保存好,然后將調試成功的Web App Debugger類型的WebService項目中的
   接口單元和接口實現單元復制替換掉剛剛創建的ISAPI類型項目中的接口單元和接口實現單元,
   然后打開ISAPI類型的WebService,編譯生成dll。至此ISAPI類型的WebService建立成功。

8、將ISAPI類型的WebService發布到IIS上。在IIS中新建站點,新建時將執行權限設置成“腳本
   和可執行文件”,將WebService整個項目拷貝到站點文件夾下,啟動站點,該WebService就算
   發布成功了,如果IIS是6.0以上的注意在Web服務擴展中將“所有未知ISAPI擴展”設置為允許,
   具體設置可參見IIS幫助文檔。


9、如何用Delphi調用剛才寫的WebService。在瀏覽器中輸入剛才站點的路徑,如:
    http://192.168.1.5:90/,瀏覽器轉到項目所在文件夾,

   點擊bin,打開生成的dll文件夾,再點擊生成的dll文件,打開如下圖所示的的dll描述頁面,
   該dll中有三個接口函數HZ,LJ,SaveData,它們都是供別人調用的接口函數。

   點擊WSDL打開WSDL描述頁面,此時復制該頁面的網址,這個網址是我們要用到的。

10、 得到網址后,新建一個Application,我們就在這個Application中調用剛才的WebService。
     依次點擊New|Other|WebServices|WSDL Import,如后提示輸入網址,我們輸入剛才復制的
     網址,點擊next,finish,此時Delphi將自動添加一個單元,該單元就是調用WebService的
     單元,有了這個單元我們就可以調用WebService了。在Unit1中引用該單元,再添加一個按鈕,
     在按鈕的單擊事件中聲明一個接口對象,然后調用自動生成單元中的GetMainIntf(該方法是
     自動生成的)函數給這個接口對象賦值,然后就可以用這個接口對象調用接口函數了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM