使用Delphi中的oData服务
我如何使用Delphi的oData Web服务(我正在尝试与新的Bing搜索Azure API交互)?在Delphi中几乎没有这样做的信息。这里有一篇文章,但从德尔福的角度解释如何使用这种服务并没有多大帮助。有人能提供一个简单的例子吗?下面是一个使用netflix oData服务在Delphi XE中使用oData服务的非常简单的例子:使用Delphi中的oData服务,delphi,odata,delphi-xe,Delphi,Odata,Delphi Xe,我如何使用Delphi的oData Web服务(我正在尝试与新的Bing搜索Azure API交互)?在Delphi中几乎没有这样做的信息。这里有一篇文章,但从德尔福的角度解释如何使用这种服务并没有多大帮助。有人能提供一个简单的例子吗?下面是一个使用netflix oData服务在Delphi XE中使用oData服务的非常简单的例子: program oDataDemo; {$APPTYPE CONSOLE} uses SysUtils, msxml, Variants, Active
program oDataDemo;
{$APPTYPE CONSOLE}
uses
SysUtils, msxml, Variants, Activex;
var
httpRequest: IXMLHttpRequest;
oDataServiceURI: String;
oDataFilter: String;
xmlResults: String;
begin
try
oDataServiceURI := 'http://odata.netflix.com/v2/Catalog/Titles()';
oDataFilter := '?$top=10';
coinitialize(nil);
httpRequest := CoXMLHTTP.Create;
httpRequest.open('GET', UTF8Encode(oDataServiceURI + oDataFilter), false, EmptyParam, EmptyParam);
httpRequest.send(EmptyParam);
xmlResults := httpRequest.responseText;
WriteLn(xmlResults);
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
它不应该是URLEncode()而不是UTF8Encode(oDataServiceURI+oDataFilter)?我将研究URLEncode,我的理解是URI应该是UTF-8编码的。请参见此链接:以及当前标准的部分:Delphi和rest的所有示例都是这种格式。xmlResults作为文本的用途是什么?如果Delphi要求程序员手动解析Atom pub xml,那么Delphi实际上不支持Rest。它只支持httprequest。XE3真的解决了这个问题吗?我想这取决于RESTful服务返回的内容,XML和JSON都很容易在Delphi中解析。对于JSON,我通常使用一个叫做SuperObject的第三方库,它简化了解析工作。我在Delphi中并没有找到解析odata的简单方法。即使Remy在中给出的优秀JSON示例也不能与odata一起使用。