仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 449|回复: 6
打印 上一主题 下一主题

[学习教程] ASP教程之股票报价的WebService之一

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:29:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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的输入信息前往给用户。缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。
冷月葬花魂 该用户已被删除
沙发
发表于 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 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
透明 该用户已被删除
5#
发表于 2015-3-6 19:40:20 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
admin 该用户已被删除
6#
发表于 2015-3-13 07:08:19 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
再现理想 该用户已被删除
7#
发表于 2015-3-20 16:05:52 | 只看该作者
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-25 13:07

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表