第壹步,準備工作,了解新浪短信Web Service。新浪發送短信的Web Service地址是/ws/smswebservice0101.wsdl,該Web Service就只有壹個方法,即string sendXml(carrier,userid,password,mobilenumber,content,msgtype)。各個參數全部為string類型,其含義基本如下(可能不正確)。
Carrier:運營商名稱,好像可以隨便輸,建議輸入“Sina”,如果輸入其他的值,消息發送的特別慢;
Userid:您在新浪無線上註冊的手機ID,如果您沒有在上註冊您的手機,妳是無法使用本Web Service發送短信的;
Password:您在新浪無線上註冊手機時所使用的密碼;
Mobilenumber:對方的手機號碼;
Content:發送短消息的內容;
Msgtype:發送短消息的類型,我估計支持彩信,不過我不知道怎麽使用,似乎隨便輸什麽都可以,我使用的是“Text”。
資費標準請參看新浪無線網站上的相關說明,應該是壹條壹角錢,不過也或者是壹條兩角線,具體不太清楚。由於其後臺可能使用了消息隊列機制,在繁忙的時候,可能會有較長時間的延遲。
第二步,先建立壹個空白的應用程序。運行Delphi 7,打開[File]->[New]->[Application]菜單,Delphi自動生成壹個默認的工程。將默認的窗體Form1改為sms,然後將改工程保存為smsdemo.prj
第三步,引入Web Service。,打開[File]->[New]->[Other]菜單,在彈出的窗口中選擇WebServices Tab頁面,然後選擇其中的WSDL importer選項,單擊OK按鈕彈出WSDL importer Wizard窗口,如圖2所示。在其上的Location of WSDL File or URL 中輸入:/ws/smswebservice0101.wsdl (註意,千萬不能輸錯!),單擊Next按鈕後,再單擊Finishi按鈕,完成浪發送短信Web Service的引入。此時工程文件中會增加壹個名字為smswebservice0101.pas的文件,這是Delphi自動生成的Web Service引入申明文件,不要手工修改他。
第四步,調用Web Service的短信發送接口。在sms窗體中,依次增加四個TEdit控件,壹個TButton控件,壹個TMemo控件和五個TLabel控件。
在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是目前很熱門也是正在迅速發展著的壹項技術。