股票报价的WebService之一

2016-01-29 17:26 7 1 收藏

股票报价的WebService之一,股票报价的WebService之一

【 tulaoshi.com - ASP 】

  Web Services,即Web服务,是微软.NET战略中非常重要的一个概念。它的目的是将Web站点转变为集组织、应用、服务以及设备于一体的可设计Web站点,使Web站点不再处于被动的地位。

  本文将介绍如何建立和使用一个在.NET 平台上提供股票报价的Web服务。我们将使用Yahoo的一项以CSV(以逗号分隔的值)的格式提供股票报价的免费服务,将其包含在我们的web 服务中。

  注意:这个报价服务例程的运行大约延迟15分钟,只用于教学目的。

  建立Web服务

  下面将采用逐步讲解代码的形式来帮助你理解在.NET 中Web服务的编程模式。我们可以使用notepad等任何文本编辑器来编写 这里的Web服务例程代码,最后将文件存储为StockQuote.asmx。请注意:所有的Web服务文件保存时都使用扩展名 *.asmx。

  <%@ WebService Language="C#" class="DailyStock" %>

代码的第一行定义了一个 Web 服务,使用的语言是C#。class属性用来指示Web服务应该调用和使用的类。如果在Web服务中使用了许多类,那么就应该用这个属性来表明Web服务应该首先调用的类。

  using System ;
  using System.Web.Services ;
  using System.Net ;
  using System.IO ;
  using System.Text ;

以上代码负责引入必要的名称空间。 请记住永远都要引入System.Web.Services这个名称空间 。根据类的需要,再引入保留的名称空间。

  public class DailyStock : WebService
   {
    ......
    ....
   }

这里我们将公共类定义为 DailyStock,它扩展了 System.Web.Services.WebService 类。所有想暴露为 Web服务的类都应该扩展System.Web.Services.WebServices类。 另外,Web 服务的存取修饰语永远都是public。

  [WebMethod]
   public string GetQuote(string symbol)
   {
    ........
    ........
   }

以上我们定义了一个公共Web方法 GetQuote。同类的定义一样,Web 方法也都要用 public这个修饰语来声明。 [WebMethod] 属性呈现出将要被用在Web服务中的一些潜在方法,希望客户存取的所有方法都应该用[WebMethod] 属性进行标记。GetQuote方法接受一个字符串输入参数,它包含了使用者所需要的报价符号。这个方法返回一个字符串,其中包含股票报价或错误信息。

  string ret;
   try
    {
     // The Path to the Yahoo Quotes Service
     string fullpath = @"http://quote.yahoo.com/d/quotes.csv?s="+symbol+"&f=sl1d1t1c1ohgvj1pp2owern&e=.csv";

     // Create a HttpWebRequest object on the Yahoo url

     HttpWebRequest webreq = (HttpWebRequest)WebRequestFactory.Create(fullpath);

     // Get a HttpWebResponse object from the Yahoo url

     HttpWebResponse webresp = (HttpWebResponse)webreq.GetResponse();

     // Create a StreamReader object and pass the Yahoo Server stream as a parameter

     StreamReader strm = new StreamReader(webresp.GetResponseStream(), Encoding.ASCII);

     // Read a single line from the stream (from the server)
     // We read only a single line, since the Yahoo server returns all the
     // information needed by us in just one line.

     ret= strm.ReadLine();

     // Close the stream to the server and free the resources.

     strm.Close();

    }

   catch(Exception)

   {

    // If exception occurred inform the user

    ret="Exception Occurred" ;

   }

   file://Return the Quote or Exception

   return ret ;

  以上是GetQuote 方法的内容。这里使用一个 try-catch模块来截获从Yahoo中得到股票报价的过程中可能发生的错误。在 try-catch模块内部声明了一个字符串变量,这个变量中保存着获取yahoo服务的完整路径,用户提供的symbol字符串变量被加到这个连接字符串上。

  路径建立好之后,就要从连接字符串中构造一个 HttpWebRequest对象和一个 HttpWebResponse 对象。接着,用StreamReader打开一个到Yahoo服务器的流。StreamReader 从服务器中读取一行, Yahoo提供给我们所需要的信息都是一行一行的。最后,流被关闭,Yahoo的输出信息返回给用户。  

来源:http://www.tulaoshi.com/n/20160129/1501357.html

延伸阅读
标签: PS PS教程
1. 快速打开文件 双击Photoshop的背景空白处(默认为灰色显示区域)即可打开选择文件的浏览窗口。 2. 随意更换画布颜色 选择油漆桶工具并按住Shift点击画布边缘,即可设置画布底色为当前选择的前景色。如果要还原到默认的颜色,设置前景色为25%灰度(R192,G192,B192)再次按住Shift点击画布边缘。 3. 选择工...
标签: 营养价值
玉米是我们最常见不过的,很多人都喜欢吃玉米,不管男人女人老人还是小孩。玉米的味道非常的香甜,那么,你们知道玉米的功效与作用是什么吗?一根玉米的热量是多少呢?下面就让图老师小编给大家介绍一下吧。 很多女性朋友都很关心玉米的热量,她们常常疑惑吃玉米会不会增肥呢?下面就一起了解一下吧。 一根玉米的热量 ...
标签: 痘痘
枕套容纳灰尘,污垢和油 .hzh {display: none; } 即使你从来没有带着彩妆和发胶睡觉,枕套如果不定期清洗和更换,都很容易藏污纳垢,促使产生机械性粉刺——脸接触到不洁物品,导致毛孔堵塞或感染而引起粉刺。 是否与枕套的面料有关? 不管枕套的面料什么,棉,麻或丝绸,织物都能容下污物的存在,所以所有面料的枕套...
标签: ASP
  @CODEPAGE 可以使用 @CODEPAGE 指令为 .asp 文件设置代码页。代码页是一个字符集,包括数字、标点符号及其他字符。不同的语言和现场 用不同的代码页。例如,ANSI 代码页 1252 为美国英语和大多欧洲语言所使用,而 OEM 代码页 932 为日本汉字所使用。 代码页可表示为一个字符到单字节值或多字节值的映射表。许多代码页都共享在 0x00-0x...
作为组件制作的开始,应该了解一些概念,我以为这些概念是非常重要的,将可以作为以后实践的理论基础。 ? 一,?组件的简要层次结构。一般情况下,VCL的组件可以从Tcomponent为开始。其最明显的特征就是它的属性可以在设计时通过对象察看器来操纵,另外,他还能拥有其他组件。 从Tcomponent下,分出非可视组件和可视...

经验教程

385

收藏

99
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部