从Delphi获取oData服务

Mig*_*l E 10 delphi odata delphi-xe

如何从Delphi使用oData webservice(我正在尝试与新的Bing Search Azure API进行交互)?在Delphi中几乎没有任何信息可以做到这一点.这里有一篇文章,但从Delphi的角度来看,它没有多大帮助解释如何使用这样的服务.有谁可以提供一个简单的例子?

Mat*_*ttl 4

下面是一个使用 netflix oData 服务在 Delphi XE 中使用 oData 服务的非常简单的示例:

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.
Run Code Online (Sandbox Code Playgroud)