| [Previous][Up][Next] |
The TFPHTTPClient class supports all standard HTTP methods through various methods and overloads. Each method provides multiple ways to handle the response: as a string, stream, or file.
program HTTPMethodsExample; {$mode objfpc}{$H+} uses SysUtils, Classes, fphttpclient, opensslsockets; var Client: TFPHTTPClient; Response: String; PostData: TStringStream; ResponseStream: TFileStream; begin Client := TFPHTTPClient.Create(nil); try // GET request Writeln('=== GET Request ==='); Response := Client.Get('https://httpbin.org/get?param1=value1'); Writeln('GET Response: ', Copy(Response, 1, 100), '...'); // POST request with data Writeln('=== POST Request ==='); Client.RequestBody := TRawByteStringStream.Create('{"key": "value", "number": 42}'); Client.AddHeader('Content-Type', 'application/json'); Response := Client.Post('https://httpbin.org/post'); Writeln('POST Response: ', Copy(Response, 1, 100), '...'); // PUT request Writeln('=== PUT Request ==='); Client.RequestBody := TRawByteStringStream.Create('{"updated": "data"}'); Client.AddHeader('Content-Type', 'application/json'); Client.HTTPMethod('PUT', 'https://httpbin.org/put', nil, [200]); Writeln('PUT Status Code: ', Client.ResponseStatusCode); // DELETE request Writeln('=== DELETE Request ==='); Client.HTTPMethod('DELETE', 'https://httpbin.org/delete', nil, [200]); Writeln('DELETE Status Code: ', Client.ResponseStatusCode); // HEAD request (only headers, no body) Writeln('=== HEAD Request ==='); Client.HTTPMethod('HEAD', 'https://httpbin.org/get', nil, [200]); Writeln('HEAD Content-Length: ', Client.GetHeader(Client.ResponseHeaders, 'Content-Length')); // OPTIONS request Writeln('=== OPTIONS Request ==='); Client.HTTPMethod('OPTIONS', 'https://httpbin.org', nil, [200]); Writeln('Allowed Methods: ', Client.GetHeader(Client.ResponseHeaders, 'Allow')); // Save response to file Writeln('=== GET to File ==='); Client.Get('https://httpbin.org/json', '/tmp/claude/response.json'); if FileExists('/tmp/claude/response.json') then Writeln('Response saved to file successfully'); finally Client.Free; end; end.