Google财经,如何获取流式传输的JSON数据?

我试着早点解释一下,但显然失败了!

因此,如果您打开了Google财经图表,例如:

http://www.google.com/finance?q=INDEXNASDAQ:.IXIC

我想以某种方式在C#中使用(HttpWebRequest)对象,以便我可以抓取google发送到页面的小数据来更新图形。

有朋友提到这是JSON吗?

我试图使用下面的代码示例,但即使我将keep alive属性设置为’true’,它仍然无法工作:

http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.keepalive.aspx#Y369

您还需要更改将Connection属性设置为Close的示例行。 注释掉这一行(同时保持keep-alive属性设置为true):

 myHttpWebRequest2.Connection = "Close"; 

你这样做,你的例子应该运行正常。

关于获取数据和使用HttpWebRequest来使用它,你可以做到这一点。 返回的数据不是JSON – 它看起来像直文,我猜测Google的javascript正在解析它。 (我没有在Google财经页面上查看过javascript,但这是我的猜测。)

使用Fiddler,来自此URL的响应:

http://www.google.com/finance/getprices?q=.IXIC&x=INDEXNASDAQ&i=120&p=10m&f=d,c,v,o,h,l&df=cpct&auto=1&ts=1307994768643

看起来像这样:

 EXCHANGE%3DINDEXNASDAQ MARKET_OPEN_MINUTE=570 MARKET_CLOSE_MINUTE=960 INTERVAL=120 COLUMNS=DATE,CLOSE,HIGH,LOW,OPEN,VOLUME DATA= TIMEZONE_OFFSET=-240 a1307994120,2641.12,2641.12,2639.96,2640.01,0 1,2638.76,2642.14,2638.76,2641.13,0 2,2638.95,2640.54,2638.74,2638.79,0 3,2639.85,2640.01,2638.08,2638.95,0 4,2640.07,2640.87,2639.31,2639.88,0 5,2640.31,2640.48,2639.42,2640.08,0 6,2641.09,2641.09,2640.3,2640.31,0 

有点神秘,但你可以看到COLUMNS线如何与底部的数据对齐。 此外, f查询字符串参数似乎指示要返回的列(d =日期,c =关闭,v =音量,o =打开,h =高,l =低)。

编辑 :我应该提一下,我使用的URL是从财务图表页面发送的,以获取更新的数据 – 您可以使用像Fiddler这样的工具定期查看此URL。 我粘贴的响应数据也是由MSDN中的示例应用程序输出的。

但是注释掉MSDN示例中的一行并且稍微摆弄Fiddler应该会为您提供解析来自该URL的返回所需的数据和线索。

我希望这有帮助!

PS – 我修改的MSDN示例中的第一行如下所示:

 HttpWebRequest myHttpWebRequest1 = (HttpWebRequest)WebRequest.Create("http://www.google.com/finance/getprices?q=.IXIC&x=INDEXNASDAQ&i=120&p=10m&f=d,c,v,o,h,l&df=cpct&auto=1&ts=1307994768643"); 

我在示例中对其他WebRequest调用进行了类似的更改…除此之外,我没有更改示例中的任何其他内容。