ASP教程之股票报价的WebService之一
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。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。
publicstringGetQuote(stringsymbol)
{
........
........
}
以上我们界说了一个大众Web办法GetQuote。同类的界说一样,Web办法也都要用public这个润色语来声明。属性出现出将要被用在Web服务中的一些潜伏办法,但愿客户存取的一切办法都应当用属性举行标志。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的输入信息前往给用户。缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) 我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标. 接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。 尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。 运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
页:
[1]