一提起基於Web Services技術的應用程序開發,一般人首先想到的開發工具是Vs.Net,其實作為快速應用程序開發工具(RAD)的老大,Delphi從6.0就開始支持Web Services的開發和應用了,本文通過使用Delphi 7.0調用新浪發送短信的Web Service進行短信應用程序開發這一實例詳細的介紹在Delphi中如何開發基於Web Services的應用系統。
第一步,准備工作,了解新浪短信Web Service。新浪發送短信的Web Service地址是http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl,該Web Service就只有一個方法,即string sendXML(carrIEr,userid,passWord,mobilenumber,content,msgtype)。各個參數全部為string類型,其含義基本如下(可能不正確)。
CarrIEr:運營商名稱,好像可以隨便輸,建議輸入“Sina”,如果輸入其他的值,消息發送的特別慢;
Userid:您在新浪無線上注冊的手機ID,如果您沒有在http://sms.sina.com.cn上注冊您的手機,你是無法使用本Web Service發送短信的;
PassWord:您在新浪無線上注冊手機時所使用的密碼;
Mobilenumber:對方的手機號碼;
Content:發送短消息的內容;
Msgtype:發送短消息的類型,我估計支持彩信,不過我不知道怎麼使用,似乎隨便輸什麼都可以,我使用的是“Text”。
資費標准請參看新浪無線網站上的相關說明,應該是一條一角錢,不過也或者是一條兩角線,具體不太清楚。由於其後台可能使用了消息隊列機制,在繁忙的時候,可能會有較長時間的延遲。
第二步,先建立一個空白的應用程序。運行Delphi 7,打開[File]->[New]->[Application]菜單,Delphi自動生成一個默認的工程。將默認的窗體Form1改為sms,然後將改工程保存為smsdemo.prj。如下圖所示:
圖1
第三步,引入Web Service。,打開[File]->[New]->[Other]菜單,在彈出的窗口中選擇WebServices Tab頁面,然後選擇其中的WSDL importer選項,單擊OK按鈕彈出WSDL importer Wizard窗口,如圖2所示。在其上的Location of WSDL File or URL 中輸入:http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl (注意,千萬不能輸錯!),單擊Next按鈕後,再單擊Finishi按鈕,完成浪發送短信Web Service的引入。此時工程文件中會增加一個名字為smswebservice0101.pas的文件,這是Delphi自動生成的Web Service引入申明文件,不要手工修改他。
圖2
第四步,調用Web Service的短信發送接口。在sms窗體中,依次增加四個TEdit控件,一個TButton控件,一個TMemo控件和五個TLabel控件,按圖3進行排列和設置。
圖3
在smsfrm單元的uses語句中包含smswebservice0101,以便改窗體中能夠訪問新浪發送短信的Web Service接口。
在發送按鈕OnClick事件中寫入以下代碼:
procedure Tsms.Button1Click(Sender: TObject);
begin
Memo1.Text := GetSMSWebServiceSoapPort.sendXML(Edit1.Text,Edit2.Text, Edit3.Text, Edit4.Text, Edit5.Text,'Text');
end;
注意:Edit1、Edit2、Edit3、Edit4、Edit5分別對應界面上的運營商、用戶名、密碼、對方號碼、消息內容;Memo1對應界面上的反饋。
第五步,使用Web Service的短信發送接口進行短信發送。編譯、運行smsdemo.prj,在用戶名中輸入您在新浪無線上注冊的手機ID、密碼中輸入您在新浪無線上的密碼,然後再輸入對方的手機號碼和消息內容,單擊發送按鈕,稍候片刻,在反饋信息框中將會得到該Web Service的反饋信息,如果一切正常,系統會提示您短信發送成功。
小結
從上面的例子我們可以看到,只要理解了Web Services的概念,在Delphi的幫助下,開發基於Web Services的應用程序將不是一件很困難的事情。Web Services最適合用於開發跨平台和跨網絡進行通信(因為使用http協議為防火牆所允許)的程序,可以跨越異質架構,聯系客戶、供應商、企業伙伴以及企業內部之信息系統,是電子商務B2B、企業信息等集成的最佳解決方案。各個公司只要把商務邏輯“暴露”出來,成為Web Service,就可以讓任何指定的合作伙伴調用這些商務邏輯,而不管他們的系統在什麼平台上運行,使用什麼開發工具。Web Services是目前很熱門也是正在迅速發展著的一項技術,本文只是作者在學習中的一點小體會,肯定有理解不深刻甚或錯誤的地方,歡迎大家予以指正。