亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

關于C#下寫的Web Service 服務在Delphi下調用時的問題

2024-07-21 02:18:12
字體:
來源:轉載
供稿:網友
關于c#下寫的web service 服務在delphi下調用時的問題

首先我覺得有必要把.net平臺下開發webservice進行一個比較全面的闡述,web service的最初產生是在電子商務的環境下出現的,有些問題通過傳統的手段已經不容易解決,比如在應用程序之間進行商務通信、數據交換,使用dcom、corba等二進制機制的東西已經行不通了,姑且不說他們受各自平臺的限制,比如dcom(distribute common objects model)只能在windows平臺下進行,而corba(common objects request broker architecture)又只是java平臺下的產物。他們要實現應用程序之間的數據通信是比較困難的。

在這種背景下,web services 應運而生,它很好的解決了跨語言、跨平臺以及良好而安全的穿透企業防火墻。它的體系結構大體上分為五個層次:

http(hypertext transfer protocol)信道下進行數據通信
xml(extensable markup language)數據表達形式
soap(simple objects access protocol)的數據封裝
wsdl(webservices description language)的描述語言格式
uddi(universal description and discovery integration) 統一的描述、發現和集成
作為它的優點跨語言、跨平臺以及良好而安全的穿透企業防火墻已經足以使我們感到興奮了。不過它也存在需要改善的地方,比如:

http進行數據通信存在速度較慢的情況,尤其是第一次聯結。
需要一臺web server這一額外的開銷
說了webservices的體系結構以及其優點缺點以后我們切入正題,那就是我們這次討論的話題:

web service 服務在delphi下調用時的問題

閑話少說,我們用一個檢驗webmethod的attribute的一個簡單的例子進行闡述:它是完成一次從客戶a轉帳到b的一個簡單商務過程。

首先我們在.net framework1.1下創建一個webservice,這時候.net會幫我們自動創建一個web應用

我們需要創建一個類attributetest,它是在命名空間namespace attributetesting下的,那么這個類它將自動繼承了它的基類 system.web.services.webservice,需要支出的時,我們可以對這個web應用類設置其webserviceattribute,其中基本屬性包括description 和namespace

[webserviceattribute(namespace="http://www.isdoo.com/services",

description="hello ansel,this is a testing web service!")]

public class attributetest : system.web.services.webservice
{

[webmethodattribute(description="描述信息:繼承了count方法,并且對名稱進行重載。執行的是把錢從a用戶轉帳到b用戶......",
//messagename="changing messagename",
bufferresponse=true,
cacheduration=1000,
enablesession=true,
transactionoption=transactionoption.requiresnew)]
public string transmoney(double money)
{
try
{
contextutil.enablecommit();//transaction only used to database operation!
moneyintoa(money);
moneyoutfromb(money);
contextutil.setcomplete();
return "transaction successful,total "+money.tostring();
}
catch( exception e)
{
contextutil.setabort();
return "transaction failed! /n/r "+e.message;
}
}
private void moneyintoa(double money)
{
sqlcommand sqlcom = new sqlcommand("update budget set money=money+"+money.tostring()+" where name='a'");
databaseaccess mydatabase = new databaseaccess();
sqlcom.connection=mydatabase.getconnection();
sqlcom.connection.open();
sqlcom.executenonquery();
sqlcom.connection.close();
//throw new exception("operation failed when transfer money into a!");
}

private void moneyoutfromb(double money)
{
sqlcommand sqlcom = new sqlcommand("update budget set money=money-"+money.tostring()+" where name='b'");
databaseaccess mydatabase = new databaseaccess();
sqlcom.connection=mydatabase.getconnection();
sqlcom.connection.open();
sqlcom.executenonquery();
sqlcom.connection.close();
//throw new exception("operation failed when transfer money from b!");
}

}

其中我們需要特別注意的是,webmethodattribute,這也是我們這一次需要講述的重點內容,只要給一個方法加上[webmethodattribute],哪怕里面沒有任何屬性,那么webservice就會把這個方法暴露(expose)給了客戶段調用者.下面我們講述一下它的6個屬性,其中包括2個描述性的信息屬性,4個功能屬性

描述性的信息屬性:

description
messagename
4個功能性屬性:

bufferresponse
cacheduration
enablesession
transactionoption
其中我們需要注意messagename這個屬性它delphi調用.net平臺下開發的webservice的時候,如果你設置了messagename這個attribute的話,那么客戶端調用時會報錯誤。這也許是一個bug,或許后面的版本會解決這個問題。至于這幾個屬性的具體功能就不再這里詳細描述了。大家可以去看看相關的書籍。

下面我把delphi調用webservice的步驟列舉一下:

首先如果你只是開發調用客戶端,那么你只需要創建一個普通的應用程序即可,然后需要你做的是,在工具欄webservices下面找到soaphttpclient這個控件,然后把它放在你的客戶端應用窗體上;

其次就是你需要設置這個soaphttpclient的屬性url或者wsdl,這個內容就是你的webservice的服務地址

比如我們當前例子的服務地址是:http://localhost/attributetesting/attributetesting.asmx

如果你想輸入wsdl那么就是http://localhost/attributetesting/attributetesting.asmx?wsdl

這樣就完成了控件設置;

然后我們需要引入服務器端的wsdl,你可以手工來做,也可以用delphi提供的webservices importer功能來引入。

最后你只需要對引入的wsdl的接口進行調用即可。在這里我們的對應代碼是:

procedure tform1.bitbtn1click(sender: tobject);
var
aa:attributetestsoap;//這個就是wsdl下的類接口對象
msg:widestring;
bb:double;
begin
//httprio2 其實就是所謂的代理類,它負責進行數據傳輸發送request和接受response的
aa:=httprio2 as attributetestsoap;

bb:=100.00;
msg:=aa.transmoney(bb);//這就是調用web服務所暴露給我們的web服務方法webmethod
showmessage(msg);
end;


ok! that's all!


商業源碼熱門下載www.html.org.cn

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内精品伊人久久| 欧美老妇交乱视频| 国产丝袜一区二区三区免费视频| 日韩中文字幕精品| 日韩福利视频在线观看| 欧美日本精品在线| 亚洲影院污污.| 亚洲人成网站在线播| www.日韩不卡电影av| 在线激情影院一区| 色哟哟网站入口亚洲精品| www.亚洲男人天堂| 亚洲美女av黄| 亚洲人成人99网站| 国产精品久久久久av| 亚洲国产精品视频在线观看| 日韩欧美主播在线| 久热精品在线视频| 国产精品一香蕉国产线看观看| 久久夜色撩人精品| 欧美激情高清视频| 亚洲免费影视第一页| 日韩中文在线观看| 亚洲成人1234| 久热99视频在线观看| 视频在线观看一区二区| 亚洲精品久久久久久久久久久| 亚洲高清不卡av| 亚洲字幕一区二区| 欧美性猛交丰臀xxxxx网站| 久久久久久免费精品| 欧美另类99xxxxx| 伊人伊人伊人久久| 成人性生交大片免费看小说| 2019亚洲日韩新视频| 欧美日韩国产中字| 欧美与黑人午夜性猛交久久久| 久久频这里精品99香蕉| 日韩中文字在线| 国产精品十八以下禁看| 日韩免费视频在线观看| 亚洲精选在线观看| 在线成人中文字幕| 欧美在线视频免费观看| 欧美日韩亚洲成人| 欧美日韩一二三四五区| 国产成+人+综合+亚洲欧洲| 欧美大片在线影院| 亚洲高清免费观看高清完整版| 国产精品久久久久久久久久久久久| 一区国产精品视频| 66m—66摸成人免费视频| 国内精品中文字幕| 亚洲激情中文字幕| 日韩在线观看免费| 欧美中文在线观看| 日韩欧美精品免费在线| 国产成人精品日本亚洲| 国产精品极品美女在线观看免费| 国产精品久久久久免费a∨| 国产精品96久久久久久| 国产精品欧美日韩久久| 91香蕉嫩草神马影院在线观看| 日韩在线视频一区| 亚洲日韩中文字幕在线播放| 亚洲精选在线观看| 日韩av有码在线| 日韩极品精品视频免费观看| 91亚洲国产成人精品性色| 国产欧美精品一区二区| 91成人福利在线| 懂色av中文一区二区三区天美| 91久久精品美女高潮| 日韩国产欧美精品在线| 91精品国产乱码久久久久久蜜臀| 狠狠久久五月精品中文字幕| 欧美性猛交xxxx富婆弯腰| 高清欧美性猛交xxxx黑人猛交| 亚洲裸体xxxx| 国产精品爽黄69| 国产日韩欧美视频| 色噜噜久久综合伊人一本| 精品福利一区二区| 日韩在线免费视频| 一区二区欧美亚洲| 国产精品中文字幕久久久| 亚洲伊人成综合成人网| 91大神在线播放精品| 久久久久国产精品免费| 亚洲精品国产suv| 亚洲美女又黄又爽在线观看| 91精品国产色综合久久不卡98口| 中文字幕精品网| 亚洲天堂av综合网| 日韩av一区二区在线观看| 亚洲精品白浆高清久久久久久| 69久久夜色精品国产69乱青草| 91国产视频在线| 精品香蕉在线观看视频一| 日韩美女视频中文字幕| 欧美日韩加勒比精品一区| 在线成人中文字幕| 亚洲欧美在线免费观看| 7777kkkk成人观看| 黄色成人在线播放| 国产精品美女免费视频| 亚洲精品一区二三区不卡| 日韩美女免费观看| 国产精品va在线播放我和闺蜜| 欧美视频第一页| 日韩欧美精品在线观看| 日产日韩在线亚洲欧美| 亚洲视频在线看| 日韩av一卡二卡| 视频直播国产精品| 91精品国产高清久久久久久| 精品国产区一区二区三区在线观看| 26uuu亚洲伊人春色| 日韩在线视频免费观看高清中文| 91产国在线观看动作片喷水| 精品国产福利在线| 日韩美女av在线| 久久久国产精品一区| 欧美激情精品久久久久久变态| 中文日韩电影网站| 欧美日韩中文字幕| 热久久这里只有精品| 国产精品亚洲视频在线观看| 18久久久久久| 亚洲欧美国产日韩中文字幕| www.美女亚洲精品| 久久97精品久久久久久久不卡| 国产午夜精品一区理论片飘花| 欧美在线性爱视频| 亚洲欧美综合区自拍另类| 久久久久久久久电影| 亚洲第一av网| 久久九九亚洲综合| 2018日韩中文字幕| 国产99在线|中文| 国产啪精品视频网站| 欧美成人午夜影院| 亚洲自拍小视频| 欧美在线精品免播放器视频| 欧洲s码亚洲m码精品一区| 亚洲欧洲在线播放| 成人伊人精品色xxxx视频| 欧美在线不卡区| 国产精品黄色av| 日韩国产激情在线| 国产一区二区动漫| 亚洲精品国产精品乱码不99按摩| 午夜精品久久久久久久99热| 国产精品成人免费电影| 亚洲性无码av在线| 亚洲精品免费一区二区三区| 粗暴蹂躏中文一区二区三区| 2019中文在线观看| 国产精品h在线观看| 国产精品video| 91久久精品日日躁夜夜躁国产| 欧美一区二区三区艳史| www.欧美视频| 欧美激情乱人伦|