在Delphi中使用Yahoo!查询语言(YQL)

3

我看到雅虎YQL可以从Web服务中获取许多信息,这非常有用。然而,当我在谷歌上搜索“Delphi YQL”时,没有有用的信息返回。是否有任何帮助和样例来使用Delphi发送请求并从YQL获取结果?非常感谢。

1个回答

5

YQL是一种基于HTTP的协议。在Delphi中有很多使用HTTP的例子。这里有一个使用Indy的TIdHTTP组件发送Yahoo的示例YQL查询的例子:

var
  YqlQuery: string;
  YqlResult: string;
  YqlResultCharset: string;
  YqlResultFormat: string;
  Url: string;
begin    
  YqlQuery := 'select * from geo.places where text="sunnyvale, ca"';
  YqlResultCharset := 'iso-8859-1'; // any valid IANA charset. YQL defaults to UTF-8
  YqlResultFormat := 'xml'; // can be either xml or json

  IdHTTP1.Request.ContentType := 'text/html';
  IdHTTP1.Request.Charset := YqlResultCharset;
  Url := 'http://query.yahooapis.com/v1/public/yql?q=' + TIdURI.ParamsEncode(YqlQuery) + '&format=' + YqlResultFormat;

  {
  Alternatively:

  IdHTTP1.Request.ContentType := '';
  IdHTTP1.Request.Charset := '';
  Url := 'http://query.yahooapis.com/v1/public/yql?q=' + TIdURI.ParamsEncode(YqlQuery + ' and charset="' + YqlResultCharset + '"') + '&format=' + YqlResultFormat;
  }

  YqlResult := IdHTTP1.Get(Url);
  // parse YqlResult as needed...
end;

请参考Yahoo文档了解更多细节。


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