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