兰色精灵 发表于 2015-1-16 22:29:23

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的输入信息前往给用户。缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。

冷月葬花魂 发表于 2015-1-19 14:48:48

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

老尸 发表于 2015-2-1 16:12:14

另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)

柔情似水 发表于 2015-2-7 07:58:21

我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.

透明 发表于 2015-3-6 19:40:20

接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。

admin 发表于 2015-3-13 07:08:19

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

再现理想 发表于 2015-3-20 16:05:52

运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
页: [1]
查看完整版本: ASP教程之股票报价的WebService之一