|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。WebServices,即Web服务,是微软.NET计谋中十分主要的一个观点。它的目标是将Web站点变化为集构造、使用、服务和设备于一体的可计划Web站点,使Web站点不再处于主动的位置。
本文将先容怎样创建和利用一个在.NET平台上供应股票报价的Web服务。我们将利用Yahoo的一项以CSV(以逗号分开的值)的格局供应股票报价的收费服务,将其包括在我们的web服务中。
注重:这个报价服务例程的运转约莫提早15分钟,只用于教授教养目标。
创建Web服务
上面将接纳慢慢解说代码的情势来匡助你了解在.NET中Web服务的编程形式。我们可使用notepad等任何文本编纂器来编写这里的Web服务例程代码,最初将文件存储为StockQuote.asmx。请注重:一切的Web服务文件保留时都利用扩大名*.asmx。
<%@WebServiceLanguage="C#"class="DailyStock"%>
代码的第一行界说了一个Web服务,利用的言语是C#。class属性用来唆使Web服务应当挪用和利用的类。假如在Web服务中利用了很多类,那末就应当用这个属性来标明Web服务应当起首挪用的类。
usingSystem;
usingSystem.Web.Services;
usingSystem.Net;
usingSystem.IO;
usingSystem.Text;
以上代码卖力引进需要的称号空间。请记着永久都要引进System.Web.Services这个称号空间。依据类的必要,再引进保存的称号空间。
publicclassDailyStock:WebService
{
......
....
}
这里我们将大众类界说为DailyStock,它扩大了System.Web.Services.WebService类。一切想表露为Web服务的类都应当扩大System.Web.Services.WebServices类。别的,Web服务的存取润色语永久都是public。
[WebMethod]
publicstringGetQuote(stringsymbol)
{
........
........
}
以上我们界说了一个大众Web办法GetQuote。同类的界说一样,Web办法也都要用public这个润色语来声明。[WebMethod]属性出现出将要被用在Web服务中的一些潜伏办法,但愿客户存取的一切办法都应当用[WebMethod]属性举行标志。GetQuote办法承受一个字符串输出参数,它包括了利用者所必要的报价标记。这个办法前往一个字符串,个中包括股票报价或毛病信息。
stringret;
try
{
//ThePathtotheYahooQuotesService
stringfullpath=@"http://quote.yahoo.com/d/quotes.csv?s="+symbol+"&f=sl1d1t1c1ohgvj1pp2owern&e=.csv";
//CreateaHttpWebRequestobjectontheYahoourl
HttpWebRequestwebreq=(HttpWebRequest)WebRequestFactory.Create(fullpath);
//GetaHttpWebResponseobjectfromtheYahoourl
HttpWebResponsewebresp=(HttpWebResponse)webreq.GetResponse();
//CreateaStreamReaderobjectandpasstheYahooServerstreamasaparameter
StreamReaderstrm=newStreamReader(webresp.GetResponseStream(),Encoding.ASCII);
//Readasinglelinefromthestream(fromtheserver)
//Wereadonlyasingleline,sincetheYahooserverreturnsallthe
//informationneededbyusinjustoneline.
ret=strm.ReadLine();
//Closethestreamtotheserverandfreetheresources.
strm.Close();
}
catch(Exception)
{
//Ifexceptionoccurredinformtheuser
ret="ExceptionOccurred";
}
file://ReturntheQuoteorException
returnret;
以上是GetQuote办法的内容。这里利用一个try-catch模块来截获从Yahoo中失掉股票报价的过程当中大概产生的毛病。在try-catch模块外部声了然一个字符串变量,这个变量中保留着猎取yahoo服务的完全路径,用户供应的symbol字符串变量被加到这个毗连字符串上。
路径创建好以后,就要从毗连字符串中机关一个HttpWebRequest工具和一个HttpWebResponse工具。接着,用StreamReader翻开一个到Yahoo服务器的流。StreamReader从服务器中读取一行,Yahoo供应给我们所必要的信息都是一行一行的。最初,流被封闭,Yahoo的输入信息前往给用户。缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。 |
|