有没有任何.NET的例子可以用于Yahoo Query Language (YQL)?

12

我想要在.NET中进行一些简单的调用Yahoo Query Language (YQL)。是否有人已经在.NET中实现了这个功能?

以下是我想要从.NET进行的查询:

select MarketCapitalization 
from yahoo.finance.quotes 
where symbol 
  in ("YHOO","AAPL","GOOG","MSFT","unknown")

更新

一切都正常运行,感谢 @fernaramburu。

4个回答

8

6

3

要访问YQL Web服务,Web应用程序可以调用HTTP GET,并将YQL语句作为URL参数传递...

那么WebRequest就是你的朋友。 您可以在网络上找到大量关于如何进行GET调用的webservice的信息。

或者您是在谈论LINQ提供程序吗?


我查找了YQL LINQ提供程序,不幸的是似乎没有这样的提供程序。 - Contango

3

这里有一个完整的示例(附带可下载的.NET源代码):

http://andy.edinborough.org/C-OAuth-Implementation/

这个示例实现了OAuth,让你可以利用更高的使用限制,每天100,000个请求/小时和10,000个请求/小时。

要创建OAuth密钥,请参见So, you want to use some Yahoo! APIs

代码需要进行一个小修改才能正常工作:将查询pizza替换为“show tables”。

更新:

YQL无法正常工作,除非将以下字符串附加到查询中:

&env=http%3A%2F%2Fdatatables.org%2Falltables.env

完整的查询字符串是:
http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20%28%22MSFT%22%29&diagnostics=true&env=http%3A%2F%2Fdatatables.org%2Falltables.env

从YQL查询获取完整的查询URL:
  • 浏览至Yahoo YQL查询控制台
  • 创建一个查询,例如select * from yahoo.finance.quotes where symbol in ("MSFT")
  • 在页面底部,“The Rest Query”下有一个部分。复制它。这个URL可以在任何浏览器(或使用YQL的任何桌面应用程序)中使用。
  • 修改C#源代码,在两个重载的QueryYahoo函数中将字符串&env=http%3A%2F%2Fdatatables.org%2Falltables.env附加到URL上。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接