HTTP Get (Delphi)
Contents
Description
This code shows hot to make HTTP GET requests to get wiki pages. You can change the server address (http://en.wikipedia.org) or the page name (Main Page) to get different results.
Code
program HTTPGet;
{$APPTYPE CONSOLE}
{$R *.res}
uses
SysUtils, HTTPApp, IdHTTP, XMLDoc, XMLIntf, ActiveX;
const
ServerAddress = 'http://en.wikipedia.org';
var
CoResult: Integer;
HTTP: TIdHTTP;
Query: String;
Buffer: String;
Doc: IXMLDocument;
Node: IXMLNode;
begin
try
CoResult := CoInitializeEx(nil, COINIT_MULTITHREADED);
if not((CoResult = S_OK) or (CoResult = S_FALSE)) then
begin
Writeln('Failed to initialize COM library.');
Exit;
end;
HTTP := TIdHTTP.Create;
// Build query
// For more information, see http://www.mediawiki.org/wiki/API:Query
Query := ServerAddress + '/w' + '/api.php?' +
'action=query&prop=revisions&rvprop=content&format=xml&titles=' +
String(HTTPEncode('Main Page'));
// HTTP GET request
Buffer := HTTP.Get(Query);
// Create XML document
Doc := TXMLDocument.Create(nil);
// Build XML document from HTTP response
Doc.LoadFromXML(Buffer);
// Display document content
Writeln(Doc.XML.Text);
// Get main node
Node := Doc.ChildNodes.FindNode('api');
// Process XML data
// ...
HTTP.Destroy;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
Uses
- IdHTTP.TIdHTTP
- Xml.XMLIntf.IXMLDocument ( fr | de | ja )