unit Chilkat.Http;

{
  Pascal wrapper for Chilkat Http.
  Auto-generated by PascalWrapperGenerator -- do not edit manually.
}

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}

interface

uses
  SysUtils,
  Chilkat.Base;

type

  { THttp wraps CkHttp via the C bridge layer. }
  THttp = class(TChilkatBase)
  private
    FOnAbortCheck: TChilkatAbortCheckEvent;
    FOnPercentDone: TChilkatPercentDoneEvent;
    FOnProgressInfo: TChilkatProgressInfoEvent;
    function  GetLastErrorHtml: string;
    function  GetLastErrorText: string;
    function  GetLastErrorXml: string;
    function  GetVersion: string;
    function  GetDebugLogFilePath: string;
    procedure SetDebugLogFilePath(AValue: string);
    function  GetVerboseLogging: Boolean;
    procedure SetVerboseLogging(AValue: Boolean);
    function  GetLastMethodSuccess: Boolean;
    procedure SetLastMethodSuccess(AValue: Boolean);
    function  GetAbortCurrent: Boolean;
    procedure SetAbortCurrent(AValue: Boolean);
    function  GetAccept: string;
    procedure SetAccept(AValue: string);
    function  GetAllowGzip: Boolean;
    procedure SetAllowGzip(AValue: Boolean);
    function  GetAutoAddHostHeader: Boolean;
    procedure SetAutoAddHostHeader(AValue: Boolean);
    function  GetAwsAccessKey: string;
    procedure SetAwsAccessKey(AValue: string);
    function  GetAwsEndpoint: string;
    procedure SetAwsEndpoint(AValue: string);
    function  GetAwsRegion: string;
    procedure SetAwsRegion(AValue: string);
    function  GetAwsSecretKey: string;
    procedure SetAwsSecretKey(AValue: string);
    function  GetAwsSubResources: string;
    procedure SetAwsSubResources(AValue: string);
    function  GetBandwidthThrottleDown: Integer;
    procedure SetBandwidthThrottleDown(AValue: Integer);
    function  GetBandwidthThrottleUp: Integer;
    procedure SetBandwidthThrottleUp(AValue: Integer);
    function  GetBasicAuth: Boolean;
    procedure SetBasicAuth(AValue: Boolean);
    function  GetClientIpAddress: string;
    procedure SetClientIpAddress(AValue: string);
    function  GetConnectFailReason: Integer;
    function  GetConnectTimeout: Integer;
    procedure SetConnectTimeout(AValue: Integer);
    function  GetCookieDir: string;
    procedure SetCookieDir(AValue: string);
    function  GetDefaultFreshPeriod: Integer;
    procedure SetDefaultFreshPeriod(AValue: Integer);
    function  GetDigestAuth: Boolean;
    procedure SetDigestAuth(AValue: Boolean);
    function  GetFetchFromCache: Boolean;
    procedure SetFetchFromCache(AValue: Boolean);
    function  GetFinalRedirectUrl: string;
    function  GetFollowRedirects: Boolean;
    procedure SetFollowRedirects(AValue: Boolean);
    function  GetFreshnessAlgorithm: Integer;
    procedure SetFreshnessAlgorithm(AValue: Integer);
    function  GetHeartbeatMs: Integer;
    procedure SetHeartbeatMs(AValue: Integer);
    function  GetIgnoreMustRevalidate: Boolean;
    procedure SetIgnoreMustRevalidate(AValue: Boolean);
    function  GetIgnoreNoCache: Boolean;
    procedure SetIgnoreNoCache(AValue: Boolean);
    function  GetKeepResponseBody: Boolean;
    procedure SetKeepResponseBody(AValue: Boolean);
    function  GetLMFactor: Integer;
    procedure SetLMFactor(AValue: Integer);
    function  GetLastContentType: string;
    function  GetLastHeader: string;
    function  GetLastModDate: string;
    function  GetLastResponseBody: string;
    function  GetLastResponseHeader: string;
    function  GetLastStatus: Integer;
    function  GetLogin: string;
    procedure SetLogin(AValue: string);
    function  GetLoginDomain: string;
    procedure SetLoginDomain(AValue: string);
    function  GetMaxConnections: Integer;
    procedure SetMaxConnections(AValue: Integer);
    function  GetMaxFreshPeriod: Integer;
    procedure SetMaxFreshPeriod(AValue: Integer);
    function  GetMaxResponseSize: LongWord;
    procedure SetMaxResponseSize(AValue: LongWord);
    function  GetMaxUrlLen: Integer;
    procedure SetMaxUrlLen(AValue: Integer);
    function  GetMinFreshPeriod: Integer;
    procedure SetMinFreshPeriod(AValue: Integer);
    function  GetNegotiateAuth: Boolean;
    procedure SetNegotiateAuth(AValue: Boolean);
    function  GetNtlmAuth: Boolean;
    procedure SetNtlmAuth(AValue: Boolean);
    function  GetNumCacheLevels: Integer;
    procedure SetNumCacheLevels(AValue: Integer);
    function  GetNumCacheRoots: Integer;
    function  GetOAuth1: Boolean;
    procedure SetOAuth1(AValue: Boolean);
    function  GetOAuthCallback: string;
    procedure SetOAuthCallback(AValue: string);
    function  GetOAuthConsumerKey: string;
    procedure SetOAuthConsumerKey(AValue: string);
    function  GetOAuthConsumerSecret: string;
    procedure SetOAuthConsumerSecret(AValue: string);
    function  GetOAuthRealm: string;
    procedure SetOAuthRealm(AValue: string);
    function  GetOAuthSigMethod: string;
    procedure SetOAuthSigMethod(AValue: string);
    function  GetOAuthToken: string;
    procedure SetOAuthToken(AValue: string);
    function  GetOAuthTokenSecret: string;
    procedure SetOAuthTokenSecret(AValue: string);
    function  GetOAuthVerifier: string;
    procedure SetOAuthVerifier(AValue: string);
    function  GetPassword: string;
    procedure SetPassword(AValue: string);
    function  GetPercentDoneScale: Integer;
    procedure SetPercentDoneScale(AValue: Integer);
    function  GetPreferIpv6: Boolean;
    procedure SetPreferIpv6(AValue: Boolean);
    function  GetProxyAuthMethod: string;
    procedure SetProxyAuthMethod(AValue: string);
    function  GetProxyDomain: string;
    procedure SetProxyDomain(AValue: string);
    function  GetProxyLogin: string;
    procedure SetProxyLogin(AValue: string);
    function  GetProxyLoginDomain: string;
    procedure SetProxyLoginDomain(AValue: string);
    function  GetProxyPassword: string;
    procedure SetProxyPassword(AValue: string);
    function  GetProxyPort: Integer;
    procedure SetProxyPort(AValue: Integer);
    function  GetReadTimeout: Integer;
    procedure SetReadTimeout(AValue: Integer);
    function  GetRedirectVerb: string;
    procedure SetRedirectVerb(AValue: string);
    function  GetRequireSslCertVerify: Boolean;
    procedure SetRequireSslCertVerify(AValue: Boolean);
    function  GetRequiredContentType: string;
    procedure SetRequiredContentType(AValue: string);
    function  GetSaveCookies: Boolean;
    procedure SetSaveCookies(AValue: Boolean);
    function  GetSendBufferSize: Integer;
    procedure SetSendBufferSize(AValue: Integer);
    function  GetSendCookies: Boolean;
    procedure SetSendCookies(AValue: Boolean);
    function  GetSessionLogFilename: string;
    procedure SetSessionLogFilename(AValue: string);
    function  GetSoRcvBuf: Integer;
    procedure SetSoRcvBuf(AValue: Integer);
    function  GetSoSndBuf: Integer;
    procedure SetSoSndBuf(AValue: Integer);
    function  GetSocksHostname: string;
    procedure SetSocksHostname(AValue: string);
    function  GetSocksPassword: string;
    procedure SetSocksPassword(AValue: string);
    function  GetSocksPort: Integer;
    procedure SetSocksPort(AValue: Integer);
    function  GetSocksUsername: string;
    procedure SetSocksUsername(AValue: string);
    function  GetSocksVersion: Integer;
    procedure SetSocksVersion(AValue: Integer);
    function  GetSslAllowedCiphers: string;
    procedure SetSslAllowedCiphers(AValue: string);
    function  GetSslProtocol: string;
    procedure SetSslProtocol(AValue: string);
    function  GetStreamResponseBodyPath: string;
    procedure SetStreamResponseBodyPath(AValue: string);
    function  GetTlsCipherSuite: string;
    function  GetTlsPinSet: string;
    procedure SetTlsPinSet(AValue: string);
    function  GetTlsVersion: string;
    function  GetUpdateCache: Boolean;
    procedure SetUpdateCache(AValue: Boolean);
    function  GetUseIEProxy: Boolean;
    procedure SetUseIEProxy(AValue: Boolean);
    function  GetUserAgent: string;
    procedure SetUserAgent(AValue: string);
    function  GetWasRedirected: Boolean;
    function  GetAllowHeaderFolding: Boolean;
    procedure SetAllowHeaderFolding(AValue: Boolean);
    function  GetAuthToken: string;
    procedure SetAuthToken(AValue: string);
    function  GetLastStatusText: string;
    function  GetUncommonOptions: string;
    procedure SetUncommonOptions(AValue: string);
    function  GetSniHostname: string;
    procedure SetSniHostname(AValue: string);
    function  GetProxyDirectTls: Boolean;
    procedure SetProxyDirectTls(AValue: Boolean);
    function  GetAuthSignature: string;
    procedure SetAuthSignature(AValue: string);
    function  GetOAuthBodyHash: Boolean;
    procedure SetOAuthBodyHash(AValue: Boolean);
    function  GetLastFromCache: Boolean;
    function  GetReceivedCertReq: Boolean;
    function  GetAwsSessionToken: string;
    procedure SetAwsSessionToken(AValue: string);
    function  GetRequireHostnameMatch: Boolean;
    procedure SetRequireHostnameMatch(AValue: Boolean);
    function  GetEnableSecrets: Boolean;
    procedure SetEnableSecrets(AValue: Boolean);
    procedure SetOnAbortCheck(AValue: TChilkatAbortCheckEvent);
    procedure SetOnPercentDone(AValue: TChilkatPercentDoneEvent);
    procedure SetOnProgressInfo(AValue: TChilkatProgressInfoEvent);
  public
    constructor Create;
    destructor  Destroy; override;

    property LastErrorHtml: string read GetLastErrorHtml;
    property LastErrorText: string read GetLastErrorText;
    property LastErrorXml: string read GetLastErrorXml;
    property Version: string read GetVersion;
    property DebugLogFilePath: string read GetDebugLogFilePath write SetDebugLogFilePath;
    property VerboseLogging: Boolean read GetVerboseLogging write SetVerboseLogging;
    property LastMethodSuccess: Boolean read GetLastMethodSuccess write SetLastMethodSuccess;
    property AbortCurrent: Boolean read GetAbortCurrent write SetAbortCurrent;
    property Accept: string read GetAccept write SetAccept;
    property AllowGzip: Boolean read GetAllowGzip write SetAllowGzip;
    property AutoAddHostHeader: Boolean read GetAutoAddHostHeader write SetAutoAddHostHeader;
    property AwsAccessKey: string read GetAwsAccessKey write SetAwsAccessKey;
    property AwsEndpoint: string read GetAwsEndpoint write SetAwsEndpoint;
    property AwsRegion: string read GetAwsRegion write SetAwsRegion;
    property AwsSecretKey: string read GetAwsSecretKey write SetAwsSecretKey;
    property AwsSubResources: string read GetAwsSubResources write SetAwsSubResources;
    property BandwidthThrottleDown: Integer read GetBandwidthThrottleDown write SetBandwidthThrottleDown;
    property BandwidthThrottleUp: Integer read GetBandwidthThrottleUp write SetBandwidthThrottleUp;
    property BasicAuth: Boolean read GetBasicAuth write SetBasicAuth;
    property ClientIpAddress: string read GetClientIpAddress write SetClientIpAddress;
    property ConnectFailReason: Integer read GetConnectFailReason;
    property ConnectTimeout: Integer read GetConnectTimeout write SetConnectTimeout;
    property CookieDir: string read GetCookieDir write SetCookieDir;
    property DefaultFreshPeriod: Integer read GetDefaultFreshPeriod write SetDefaultFreshPeriod;
    property DigestAuth: Boolean read GetDigestAuth write SetDigestAuth;
    property FetchFromCache: Boolean read GetFetchFromCache write SetFetchFromCache;
    property FinalRedirectUrl: string read GetFinalRedirectUrl;
    property FollowRedirects: Boolean read GetFollowRedirects write SetFollowRedirects;
    property FreshnessAlgorithm: Integer read GetFreshnessAlgorithm write SetFreshnessAlgorithm;
    property HeartbeatMs: Integer read GetHeartbeatMs write SetHeartbeatMs;
    property IgnoreMustRevalidate: Boolean read GetIgnoreMustRevalidate write SetIgnoreMustRevalidate;
    property IgnoreNoCache: Boolean read GetIgnoreNoCache write SetIgnoreNoCache;
    property KeepResponseBody: Boolean read GetKeepResponseBody write SetKeepResponseBody;
    property LMFactor: Integer read GetLMFactor write SetLMFactor;
    property LastContentType: string read GetLastContentType;
    property LastHeader: string read GetLastHeader;
    property LastModDate: string read GetLastModDate;
    property LastResponseBody: string read GetLastResponseBody;
    property LastResponseHeader: string read GetLastResponseHeader;
    property LastStatus: Integer read GetLastStatus;
    property Login: string read GetLogin write SetLogin;
    property LoginDomain: string read GetLoginDomain write SetLoginDomain;
    property MaxConnections: Integer read GetMaxConnections write SetMaxConnections;
    property MaxFreshPeriod: Integer read GetMaxFreshPeriod write SetMaxFreshPeriod;
    property MaxResponseSize: LongWord read GetMaxResponseSize write SetMaxResponseSize;
    property MaxUrlLen: Integer read GetMaxUrlLen write SetMaxUrlLen;
    property MinFreshPeriod: Integer read GetMinFreshPeriod write SetMinFreshPeriod;
    property NegotiateAuth: Boolean read GetNegotiateAuth write SetNegotiateAuth;
    property NtlmAuth: Boolean read GetNtlmAuth write SetNtlmAuth;
    property NumCacheLevels: Integer read GetNumCacheLevels write SetNumCacheLevels;
    property NumCacheRoots: Integer read GetNumCacheRoots;
    property OAuth1: Boolean read GetOAuth1 write SetOAuth1;
    property OAuthCallback: string read GetOAuthCallback write SetOAuthCallback;
    property OAuthConsumerKey: string read GetOAuthConsumerKey write SetOAuthConsumerKey;
    property OAuthConsumerSecret: string read GetOAuthConsumerSecret write SetOAuthConsumerSecret;
    property OAuthRealm: string read GetOAuthRealm write SetOAuthRealm;
    property OAuthSigMethod: string read GetOAuthSigMethod write SetOAuthSigMethod;
    property OAuthToken: string read GetOAuthToken write SetOAuthToken;
    property OAuthTokenSecret: string read GetOAuthTokenSecret write SetOAuthTokenSecret;
    property OAuthVerifier: string read GetOAuthVerifier write SetOAuthVerifier;
    property Password: string read GetPassword write SetPassword;
    property PercentDoneScale: Integer read GetPercentDoneScale write SetPercentDoneScale;
    property PreferIpv6: Boolean read GetPreferIpv6 write SetPreferIpv6;
    property ProxyAuthMethod: string read GetProxyAuthMethod write SetProxyAuthMethod;
    property ProxyDomain: string read GetProxyDomain write SetProxyDomain;
    property ProxyLogin: string read GetProxyLogin write SetProxyLogin;
    property ProxyLoginDomain: string read GetProxyLoginDomain write SetProxyLoginDomain;
    property ProxyPassword: string read GetProxyPassword write SetProxyPassword;
    property ProxyPort: Integer read GetProxyPort write SetProxyPort;
    property ReadTimeout: Integer read GetReadTimeout write SetReadTimeout;
    property RedirectVerb: string read GetRedirectVerb write SetRedirectVerb;
    property RequireSslCertVerify: Boolean read GetRequireSslCertVerify write SetRequireSslCertVerify;
    property RequiredContentType: string read GetRequiredContentType write SetRequiredContentType;
    property SaveCookies: Boolean read GetSaveCookies write SetSaveCookies;
    property SendBufferSize: Integer read GetSendBufferSize write SetSendBufferSize;
    property SendCookies: Boolean read GetSendCookies write SetSendCookies;
    property SessionLogFilename: string read GetSessionLogFilename write SetSessionLogFilename;
    property SoRcvBuf: Integer read GetSoRcvBuf write SetSoRcvBuf;
    property SoSndBuf: Integer read GetSoSndBuf write SetSoSndBuf;
    property SocksHostname: string read GetSocksHostname write SetSocksHostname;
    property SocksPassword: string read GetSocksPassword write SetSocksPassword;
    property SocksPort: Integer read GetSocksPort write SetSocksPort;
    property SocksUsername: string read GetSocksUsername write SetSocksUsername;
    property SocksVersion: Integer read GetSocksVersion write SetSocksVersion;
    property SslAllowedCiphers: string read GetSslAllowedCiphers write SetSslAllowedCiphers;
    property SslProtocol: string read GetSslProtocol write SetSslProtocol;
    property StreamResponseBodyPath: string read GetStreamResponseBodyPath write SetStreamResponseBodyPath;
    property TlsCipherSuite: string read GetTlsCipherSuite;
    property TlsPinSet: string read GetTlsPinSet write SetTlsPinSet;
    property TlsVersion: string read GetTlsVersion;
    property UpdateCache: Boolean read GetUpdateCache write SetUpdateCache;
    property UseIEProxy: Boolean read GetUseIEProxy write SetUseIEProxy;
    property UserAgent: string read GetUserAgent write SetUserAgent;
    property WasRedirected: Boolean read GetWasRedirected;
    property AllowHeaderFolding: Boolean read GetAllowHeaderFolding write SetAllowHeaderFolding;
    property AuthToken: string read GetAuthToken write SetAuthToken;
    property LastStatusText: string read GetLastStatusText;
    property UncommonOptions: string read GetUncommonOptions write SetUncommonOptions;
    property SniHostname: string read GetSniHostname write SetSniHostname;
    property ProxyDirectTls: Boolean read GetProxyDirectTls write SetProxyDirectTls;
    property AuthSignature: string read GetAuthSignature write SetAuthSignature;
    property OAuthBodyHash: Boolean read GetOAuthBodyHash write SetOAuthBodyHash;
    property LastFromCache: Boolean read GetLastFromCache;
    property ReceivedCertReq: Boolean read GetReceivedCertReq;
    property AwsSessionToken: string read GetAwsSessionToken write SetAwsSessionToken;
    property RequireHostnameMatch: Boolean read GetRequireHostnameMatch write SetRequireHostnameMatch;
    property EnableSecrets: Boolean read GetEnableSecrets write SetEnableSecrets;

    { Event callbacks.  Return True from OnAbortCheck / OnPercentDone
      to abort the running method.  Callbacks are invoked on the
      thread that called the Chilkat method.  The HeartbeatMs
      property controls the AbortCheck frequency. }
    property OnAbortCheck: TChilkatAbortCheckEvent read FOnAbortCheck write SetOnAbortCheck;
    property OnPercentDone: TChilkatPercentDoneEvent read FOnPercentDone write SetOnPercentDone;
    property OnProgressInfo: TChilkatProgressInfoEvent read FOnProgressInfo write SetOnProgressInfo;

    procedure AddCacheRoot(const dir: string);
    function  CloseAllConnections: Boolean;
    procedure DnsCacheClear;
    function  Download(const url: string; const localFilePath: string): Boolean;
    function  DownloadAppend(const url: string; const appendToPath: string): Boolean;
    function  DownloadHash(const url: string; const hashAlgorithm: string; const encoding: string): string;
    function  ExtractMetaRefreshUrl(const htmlContent: string): string;
    function  G_SvcOauthAccessToken(const iss: string; const scope: string; const subEmail: string; numSec: Integer; cert: TChilkatBase): string;
    function  G_SvcOauthAccessToken2(claimParams: TChilkatBase; numSec: Integer; cert: TChilkatBase): string;
    function  GenTimeStamp: string;
    function  GetCacheRoot(index: Integer): string;
    function  GetCookieXml(const domain: string): string;
    function  GetDomain(const url: string): string;
    function  GetRequestHeader(const name: string): string;
    function  GetUrlPath(const url: string): string;
    function  HasRequestHeader(const name: string): Boolean;
    function  QuickDeleteStr(const url: string): string;
    function  QuickGetStr(const url: string): string;
    procedure RemoveRequestHeader(const name: string);
    function  RenderGet(const url: string): string;
    function  ResumeDownload(const url: string; const targetFilename: string): Boolean;
    function  S3_CreateBucket(const bucketPath: string): Boolean;
    function  S3_DeleteBucket(const bucketPath: string): Boolean;
    function  S3_DeleteObject(const bucketPath: string; const objectName: string): Boolean;
    function  S3_DownloadFile(const bucketPath: string; const objectName: string; const localFilePath: string): Boolean;
    function  S3_DownloadString(const bucketPath: string; const objectName: string; const charset: string): string;
    function  S3_FileExists(const bucketPath: string; const objectName: string): Integer;
    function  S3_ListBucketObjects(const bucketPath: string): string;
    function  S3_ListBuckets: string;
    function  S3_UploadFile(const localFilePath: string; const contentType: string; const bucketPath: string; const objectName: string): Boolean;
    function  S3_UploadString(const objectContent: string; const charset: string; const contentType: string; const bucketPath: string; const objectName: string): Boolean;
    function  SetCookieXml(const domain: string; const cookieXml: string): Boolean;
    function  SetOAuthRsaKey(privKey: TChilkatBase): Boolean;
    procedure SetRequestHeader(const headerFieldName: string; const headerFieldValue: string);
    function  SetSslClientCert(cert: TChilkatBase): Boolean;
    function  SetSslClientCertPem(const pemDataOrPath: string; const pemPassword: string): Boolean;
    function  SetSslClientCertPfx(const pfxPath: string; const pfxPassword: string): Boolean;
    procedure SleepMs(millisec: Integer);
    function  UrlDecode(const str: string): string;
    function  UrlEncode(const str: string): string;
    function  DownloadBd(const url: string; binData: TChilkatBase): Boolean;
    function  DownloadSb(const url: string; const charset: string; sb: TChilkatBase): Boolean;
    function  QuickGetSb(const url: string; sbContent: TChilkatBase): Boolean;
    function  QuickGetBd(const url: string; binData: TChilkatBase): Boolean;
    function  SetUrlVar(const name: string; const value: string): Boolean;
    procedure ClearUrlVars;
    function  SharePointOnlineAuth(const siteUrl: string; const username: string; password: TChilkatBase; extraInfo: TChilkatBase): Boolean;
    function  ResumeDownloadBd(const url: string; binData: TChilkatBase): Boolean;
    function  CreateTimestampRequest(const hashAlg: string; const hashVal: string; const reqPolicyOid: string; addNonce: Boolean; reqTsaCert: Boolean; timestampToken: TChilkatBase): Boolean;
    function  VerifyTimestampReply(timestampReply: TChilkatBase; tsaCert: TChilkatBase): Integer;
    function  CreateOcspRequest(requestDetails: TChilkatBase; ocspRequest: TChilkatBase): Boolean;
    function  ParseOcspReply(ocspReply: TChilkatBase; replyData: TChilkatBase): Integer;
    function  SetSecurePassword(password: TChilkatBase): Boolean;
    function  S3_UploadBd(bd: TChilkatBase; const contentType: string; const bucketPath: string; const objectName: string): Boolean;
    function  S3_DownloadBd(const bucketPath: string; const objectName: string; bd: TChilkatBase): Boolean;
    procedure ClearHeaders;
    function  S3_GenPresignedUrl(const httpVerb: string; useHttps: Boolean; const bucketName: string; const path: string; numSecondsValid: Integer; const awsService: string): string;
    procedure SetSslCertRequirement(const reqName: string; const reqValue: string);
    function  OcspCheck(const domain: string; port: Integer): Integer;
    function  SetAuthPrivateKey(const publicKeyId: string; privKey: TChilkatBase): Boolean;
    function  SetAuthTokenSb(sb: TChilkatBase): Boolean;
    procedure GetLastJsonData(json: TChilkatBase);
    function  GetServerCert(const domain: string; port: Integer; cert: TChilkatBase): Boolean;
    function  HttpBd(const verb: string; const url: string; bd: TChilkatBase; const contentType: string; response: TChilkatBase): Boolean;
    function  HttpNoBody(const verb: string; const url: string; response: TChilkatBase): Boolean;
    function  HttpStr(const verb: string; const url: string; const bodyStr: string; const charset: string; const contentType: string; response: TChilkatBase): Boolean;
    function  HttpSb(const verb: string; const url: string; sb: TChilkatBase; const charset: string; const contentType: string; response: TChilkatBase): Boolean;
    function  HttpJson(const verb: string; const url: string; json: TChilkatBase; const contentType: string; response: TChilkatBase): Boolean;
    function  HttpReq(const url: string; request: TChilkatBase; response: TChilkatBase): Boolean;
    function  HttpFile(const verb: string; const url: string; const localFilePath: string; const contentType: string; response: TChilkatBase): Boolean;
    function  HttpParams(const verb: string; const url: string; json: TChilkatBase; response: TChilkatBase): Boolean;
    function  HttpSReq(const domain: string; port: Integer; ssl: Boolean; request: TChilkatBase; response: TChilkatBase): Boolean;
    function  S3_DeleteObjects(const bucketName: string; objectNames: TChilkatBase; jsonResponse: TChilkatBase): Boolean;
    procedure ClearInMemoryCookies;
    function  SetDPoPKey(privKey: TChilkatBase): Boolean;
  end;

implementation

uses
  CkDllLoader,
  Chilkat.Utils;

{ ---- C bridge function pointer types ---- }
type
  TCkHttp_Create  = function(): Pointer; cdecl;
  TCkHttp_Dispose = procedure(handle: Pointer); cdecl;
  TCkBridgeAbortCheckCb   = function(userData: Pointer): Integer; cdecl;
  TCkBridgePercentDoneCb  = function(pctDone: Integer; userData: Pointer): Integer; cdecl;
  TCkBridgeProgressInfoCb = procedure(name: PAnsiChar; value: PAnsiChar; userData: Pointer); cdecl;
  TCkHttp_SetAbortCheckCallback   = procedure(handle: Pointer; cb: TCkBridgeAbortCheckCb; userData: Pointer); cdecl;
  TCkHttp_SetPercentDoneCallback  = procedure(handle: Pointer; cb: TCkBridgePercentDoneCb; userData: Pointer); cdecl;
  TCkHttp_SetProgressInfoCallback = procedure(handle: Pointer; cb: TCkBridgeProgressInfoCb; userData: Pointer); cdecl;
  TCkHttp_get_LastErrorHtml = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_get_LastErrorText = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_get_LastErrorXml = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_get_Version = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_get_DebugLogFilePath = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_DebugLogFilePath = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_VerboseLogging = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_VerboseLogging = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_LastMethodSuccess = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_LastMethodSuccess = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_AbortCurrent = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_AbortCurrent = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_Accept = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_Accept = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_AllowGzip = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_AllowGzip = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_AutoAddHostHeader = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_AutoAddHostHeader = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_AwsAccessKey = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_AwsAccessKey = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_AwsEndpoint = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_AwsEndpoint = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_AwsRegion = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_AwsRegion = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_AwsSecretKey = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_AwsSecretKey = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_AwsSubResources = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_AwsSubResources = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_BandwidthThrottleDown = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_BandwidthThrottleDown = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_BandwidthThrottleUp = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_BandwidthThrottleUp = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_BasicAuth = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_BasicAuth = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_ClientIpAddress = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_ClientIpAddress = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_ConnectFailReason = function(handle: Pointer): Integer; cdecl;
  TCkHttp_get_ConnectTimeout = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_ConnectTimeout = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_CookieDir = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_CookieDir = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_DefaultFreshPeriod = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_DefaultFreshPeriod = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_DigestAuth = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_DigestAuth = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_FetchFromCache = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_FetchFromCache = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_FinalRedirectUrl = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_get_FollowRedirects = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_FollowRedirects = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_FreshnessAlgorithm = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_FreshnessAlgorithm = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_HeartbeatMs = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_HeartbeatMs = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_IgnoreMustRevalidate = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_IgnoreMustRevalidate = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_IgnoreNoCache = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_IgnoreNoCache = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_KeepResponseBody = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_KeepResponseBody = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_LMFactor = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_LMFactor = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_LastContentType = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_get_LastHeader = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_get_LastModDate = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_get_LastResponseBody = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_get_LastResponseHeader = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_get_LastStatus = function(handle: Pointer): Integer; cdecl;
  TCkHttp_get_Login = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_Login = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_LoginDomain = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_LoginDomain = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_MaxConnections = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_MaxConnections = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_MaxFreshPeriod = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_MaxFreshPeriod = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_MaxResponseSize = function(handle: Pointer): LongWord; cdecl;
  TCkHttp_put_MaxResponseSize = procedure(handle: Pointer; value: LongWord); cdecl;
  TCkHttp_get_MaxUrlLen = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_MaxUrlLen = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_MinFreshPeriod = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_MinFreshPeriod = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_NegotiateAuth = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_NegotiateAuth = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_NtlmAuth = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_NtlmAuth = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_NumCacheLevels = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_NumCacheLevels = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_NumCacheRoots = function(handle: Pointer): Integer; cdecl;
  TCkHttp_get_OAuth1 = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_OAuth1 = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_OAuthCallback = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_OAuthCallback = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_OAuthConsumerKey = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_OAuthConsumerKey = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_OAuthConsumerSecret = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_OAuthConsumerSecret = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_OAuthRealm = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_OAuthRealm = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_OAuthSigMethod = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_OAuthSigMethod = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_OAuthToken = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_OAuthToken = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_OAuthTokenSecret = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_OAuthTokenSecret = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_OAuthVerifier = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_OAuthVerifier = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_Password = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_Password = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_PercentDoneScale = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_PercentDoneScale = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_PreferIpv6 = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_PreferIpv6 = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_ProxyAuthMethod = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_ProxyAuthMethod = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_ProxyDomain = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_ProxyDomain = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_ProxyLogin = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_ProxyLogin = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_ProxyLoginDomain = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_ProxyLoginDomain = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_ProxyPassword = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_ProxyPassword = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_ProxyPort = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_ProxyPort = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_ReadTimeout = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_ReadTimeout = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_RedirectVerb = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_RedirectVerb = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_RequireSslCertVerify = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_RequireSslCertVerify = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_RequiredContentType = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_RequiredContentType = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_SaveCookies = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_SaveCookies = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_SendBufferSize = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_SendBufferSize = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_SendCookies = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_SendCookies = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_SessionLogFilename = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_SessionLogFilename = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_SoRcvBuf = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_SoRcvBuf = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_SoSndBuf = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_SoSndBuf = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_SocksHostname = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_SocksHostname = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_SocksPassword = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_SocksPassword = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_SocksPort = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_SocksPort = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_SocksUsername = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_SocksUsername = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_SocksVersion = function(handle: Pointer): Integer; cdecl;
  TCkHttp_put_SocksVersion = procedure(handle: Pointer; value: Integer); cdecl;
  TCkHttp_get_SslAllowedCiphers = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_SslAllowedCiphers = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_SslProtocol = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_SslProtocol = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_StreamResponseBodyPath = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_StreamResponseBodyPath = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_TlsCipherSuite = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_get_TlsPinSet = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_TlsPinSet = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_TlsVersion = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_get_UpdateCache = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_UpdateCache = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_UseIEProxy = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_UseIEProxy = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_UserAgent = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_UserAgent = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_WasRedirected = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_get_AllowHeaderFolding = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_AllowHeaderFolding = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_AuthToken = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_AuthToken = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_LastStatusText = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_get_UncommonOptions = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_UncommonOptions = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_SniHostname = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_SniHostname = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_ProxyDirectTls = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_ProxyDirectTls = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_AuthSignature = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_AuthSignature = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_OAuthBodyHash = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_OAuthBodyHash = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_LastFromCache = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_get_ReceivedCertReq = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_get_AwsSessionToken = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_put_AwsSessionToken = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkHttp_get_RequireHostnameMatch = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_RequireHostnameMatch = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_get_EnableSecrets = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_put_EnableSecrets = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkHttp_AddCacheRoot = procedure(handle: Pointer; dir: PAnsiChar); cdecl;
  TCkHttp_CloseAllConnections = function(handle: Pointer): LongBool; cdecl;
  TCkHttp_DnsCacheClear = procedure(handle: Pointer); cdecl;
  TCkHttp_Download = function(handle: Pointer; url: PAnsiChar; localFilePath: PAnsiChar): LongBool; cdecl;
  TCkHttp_DownloadAppend = function(handle: Pointer; url: PAnsiChar; appendToPath: PAnsiChar): LongBool; cdecl;
  TCkHttp_DownloadHash = function(handle: Pointer; url: PAnsiChar; hashAlgorithm: PAnsiChar; encoding: PAnsiChar): PAnsiChar; cdecl;
  TCkHttp_ExtractMetaRefreshUrl = function(handle: Pointer; htmlContent: PAnsiChar): PAnsiChar; cdecl;
  TCkHttp_G_SvcOauthAccessToken = function(handle: Pointer; iss: PAnsiChar; scope: PAnsiChar; subEmail: PAnsiChar; numSec: Integer; cert: Pointer): PAnsiChar; cdecl;
  TCkHttp_G_SvcOauthAccessToken2 = function(handle: Pointer; claimParams: Pointer; numSec: Integer; cert: Pointer): PAnsiChar; cdecl;
  TCkHttp_GenTimeStamp = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_GetCacheRoot = function(handle: Pointer; index: Integer): PAnsiChar; cdecl;
  TCkHttp_GetCookieXml = function(handle: Pointer; domain: PAnsiChar): PAnsiChar; cdecl;
  TCkHttp_GetDomain = function(handle: Pointer; url: PAnsiChar): PAnsiChar; cdecl;
  TCkHttp_GetRequestHeader = function(handle: Pointer; name: PAnsiChar): PAnsiChar; cdecl;
  TCkHttp_GetUrlPath = function(handle: Pointer; url: PAnsiChar): PAnsiChar; cdecl;
  TCkHttp_HasRequestHeader = function(handle: Pointer; name: PAnsiChar): LongBool; cdecl;
  TCkHttp_QuickDeleteStr = function(handle: Pointer; url: PAnsiChar): PAnsiChar; cdecl;
  TCkHttp_QuickGetStr = function(handle: Pointer; url: PAnsiChar): PAnsiChar; cdecl;
  TCkHttp_RemoveRequestHeader = procedure(handle: Pointer; name: PAnsiChar); cdecl;
  TCkHttp_RenderGet = function(handle: Pointer; url: PAnsiChar): PAnsiChar; cdecl;
  TCkHttp_ResumeDownload = function(handle: Pointer; url: PAnsiChar; targetFilename: PAnsiChar): LongBool; cdecl;
  TCkHttp_S3_CreateBucket = function(handle: Pointer; bucketPath: PAnsiChar): LongBool; cdecl;
  TCkHttp_S3_DeleteBucket = function(handle: Pointer; bucketPath: PAnsiChar): LongBool; cdecl;
  TCkHttp_S3_DeleteObject = function(handle: Pointer; bucketPath: PAnsiChar; objectName: PAnsiChar): LongBool; cdecl;
  TCkHttp_S3_DownloadFile = function(handle: Pointer; bucketPath: PAnsiChar; objectName: PAnsiChar; localFilePath: PAnsiChar): LongBool; cdecl;
  TCkHttp_S3_DownloadString = function(handle: Pointer; bucketPath: PAnsiChar; objectName: PAnsiChar; charset: PAnsiChar): PAnsiChar; cdecl;
  TCkHttp_S3_FileExists = function(handle: Pointer; bucketPath: PAnsiChar; objectName: PAnsiChar): Integer; cdecl;
  TCkHttp_S3_ListBucketObjects = function(handle: Pointer; bucketPath: PAnsiChar): PAnsiChar; cdecl;
  TCkHttp_S3_ListBuckets = function(handle: Pointer): PAnsiChar; cdecl;
  TCkHttp_S3_UploadFile = function(handle: Pointer; localFilePath: PAnsiChar; contentType: PAnsiChar; bucketPath: PAnsiChar; objectName: PAnsiChar): LongBool; cdecl;
  TCkHttp_S3_UploadString = function(handle: Pointer; objectContent: PAnsiChar; charset: PAnsiChar; contentType: PAnsiChar; bucketPath: PAnsiChar; objectName: PAnsiChar): LongBool; cdecl;
  TCkHttp_SetCookieXml = function(handle: Pointer; domain: PAnsiChar; cookieXml: PAnsiChar): LongBool; cdecl;
  TCkHttp_SetOAuthRsaKey = function(handle: Pointer; privKey: Pointer): LongBool; cdecl;
  TCkHttp_SetRequestHeader = procedure(handle: Pointer; headerFieldName: PAnsiChar; headerFieldValue: PAnsiChar); cdecl;
  TCkHttp_SetSslClientCert = function(handle: Pointer; cert: Pointer): LongBool; cdecl;
  TCkHttp_SetSslClientCertPem = function(handle: Pointer; pemDataOrPath: PAnsiChar; pemPassword: PAnsiChar): LongBool; cdecl;
  TCkHttp_SetSslClientCertPfx = function(handle: Pointer; pfxPath: PAnsiChar; pfxPassword: PAnsiChar): LongBool; cdecl;
  TCkHttp_SleepMs = procedure(handle: Pointer; millisec: Integer); cdecl;
  TCkHttp_UrlDecode = function(handle: Pointer; str: PAnsiChar): PAnsiChar; cdecl;
  TCkHttp_UrlEncode = function(handle: Pointer; str: PAnsiChar): PAnsiChar; cdecl;
  TCkHttp_DownloadBd = function(handle: Pointer; url: PAnsiChar; binData: Pointer): LongBool; cdecl;
  TCkHttp_DownloadSb = function(handle: Pointer; url: PAnsiChar; charset: PAnsiChar; sb: Pointer): LongBool; cdecl;
  TCkHttp_QuickGetSb = function(handle: Pointer; url: PAnsiChar; sbContent: Pointer): LongBool; cdecl;
  TCkHttp_QuickGetBd = function(handle: Pointer; url: PAnsiChar; binData: Pointer): LongBool; cdecl;
  TCkHttp_SetUrlVar = function(handle: Pointer; name: PAnsiChar; value: PAnsiChar): LongBool; cdecl;
  TCkHttp_ClearUrlVars = procedure(handle: Pointer); cdecl;
  TCkHttp_SharePointOnlineAuth = function(handle: Pointer; siteUrl: PAnsiChar; username: PAnsiChar; password: Pointer; extraInfo: Pointer): LongBool; cdecl;
  TCkHttp_ResumeDownloadBd = function(handle: Pointer; url: PAnsiChar; binData: Pointer): LongBool; cdecl;
  TCkHttp_CreateTimestampRequest = function(handle: Pointer; hashAlg: PAnsiChar; hashVal: PAnsiChar; reqPolicyOid: PAnsiChar; addNonce: LongBool; reqTsaCert: LongBool; timestampToken: Pointer): LongBool; cdecl;
  TCkHttp_VerifyTimestampReply = function(handle: Pointer; timestampReply: Pointer; tsaCert: Pointer): Integer; cdecl;
  TCkHttp_CreateOcspRequest = function(handle: Pointer; requestDetails: Pointer; ocspRequest: Pointer): LongBool; cdecl;
  TCkHttp_ParseOcspReply = function(handle: Pointer; ocspReply: Pointer; replyData: Pointer): Integer; cdecl;
  TCkHttp_SetSecurePassword = function(handle: Pointer; password: Pointer): LongBool; cdecl;
  TCkHttp_S3_UploadBd = function(handle: Pointer; bd: Pointer; contentType: PAnsiChar; bucketPath: PAnsiChar; objectName: PAnsiChar): LongBool; cdecl;
  TCkHttp_S3_DownloadBd = function(handle: Pointer; bucketPath: PAnsiChar; objectName: PAnsiChar; bd: Pointer): LongBool; cdecl;
  TCkHttp_ClearHeaders = procedure(handle: Pointer); cdecl;
  TCkHttp_S3_GenPresignedUrl = function(handle: Pointer; httpVerb: PAnsiChar; useHttps: LongBool; bucketName: PAnsiChar; path: PAnsiChar; numSecondsValid: Integer; awsService: PAnsiChar): PAnsiChar; cdecl;
  TCkHttp_SetSslCertRequirement = procedure(handle: Pointer; reqName: PAnsiChar; reqValue: PAnsiChar); cdecl;
  TCkHttp_OcspCheck = function(handle: Pointer; domain: PAnsiChar; port: Integer): Integer; cdecl;
  TCkHttp_SetAuthPrivateKey = function(handle: Pointer; publicKeyId: PAnsiChar; privKey: Pointer): LongBool; cdecl;
  TCkHttp_SetAuthTokenSb = function(handle: Pointer; sb: Pointer): LongBool; cdecl;
  TCkHttp_GetLastJsonData = procedure(handle: Pointer; json: Pointer); cdecl;
  TCkHttp_GetServerCert = function(handle: Pointer; domain: PAnsiChar; port: Integer; cert: Pointer): LongBool; cdecl;
  TCkHttp_HttpBd = function(handle: Pointer; verb: PAnsiChar; url: PAnsiChar; bd: Pointer; contentType: PAnsiChar; response: Pointer): LongBool; cdecl;
  TCkHttp_HttpNoBody = function(handle: Pointer; verb: PAnsiChar; url: PAnsiChar; response: Pointer): LongBool; cdecl;
  TCkHttp_HttpStr = function(handle: Pointer; verb: PAnsiChar; url: PAnsiChar; bodyStr: PAnsiChar; charset: PAnsiChar; contentType: PAnsiChar; response: Pointer): LongBool; cdecl;
  TCkHttp_HttpSb = function(handle: Pointer; verb: PAnsiChar; url: PAnsiChar; sb: Pointer; charset: PAnsiChar; contentType: PAnsiChar; response: Pointer): LongBool; cdecl;
  TCkHttp_HttpJson = function(handle: Pointer; verb: PAnsiChar; url: PAnsiChar; json: Pointer; contentType: PAnsiChar; response: Pointer): LongBool; cdecl;
  TCkHttp_HttpReq = function(handle: Pointer; url: PAnsiChar; request: Pointer; response: Pointer): LongBool; cdecl;
  TCkHttp_HttpFile = function(handle: Pointer; verb: PAnsiChar; url: PAnsiChar; localFilePath: PAnsiChar; contentType: PAnsiChar; response: Pointer): LongBool; cdecl;
  TCkHttp_HttpParams = function(handle: Pointer; verb: PAnsiChar; url: PAnsiChar; json: Pointer; response: Pointer): LongBool; cdecl;
  TCkHttp_HttpSReq = function(handle: Pointer; domain: PAnsiChar; port: Integer; ssl: LongBool; request: Pointer; response: Pointer): LongBool; cdecl;
  TCkHttp_S3_DeleteObjects = function(handle: Pointer; bucketName: PAnsiChar; objectNames: Pointer; jsonResponse: Pointer): LongBool; cdecl;
  TCkHttp_ClearInMemoryCookies = procedure(handle: Pointer); cdecl;
  TCkHttp_SetDPoPKey = function(handle: Pointer; privKey: Pointer): LongBool; cdecl;

{ ---- C bridge function pointer variables ---- }
var
  CkHttp_Create:  TCkHttp_Create  = nil;
  CkHttp_Dispose: TCkHttp_Dispose = nil;
  CkHttp_SetAbortCheckCallback:   TCkHttp_SetAbortCheckCallback   = nil;
  CkHttp_SetPercentDoneCallback:  TCkHttp_SetPercentDoneCallback  = nil;
  CkHttp_SetProgressInfoCallback: TCkHttp_SetProgressInfoCallback = nil;
  CkHttp_get_LastErrorHtml: TCkHttp_get_LastErrorHtml = nil;
  CkHttp_get_LastErrorText: TCkHttp_get_LastErrorText = nil;
  CkHttp_get_LastErrorXml: TCkHttp_get_LastErrorXml = nil;
  CkHttp_get_Version: TCkHttp_get_Version = nil;
  CkHttp_get_DebugLogFilePath: TCkHttp_get_DebugLogFilePath = nil;
  CkHttp_put_DebugLogFilePath: TCkHttp_put_DebugLogFilePath = nil;
  CkHttp_get_VerboseLogging: TCkHttp_get_VerboseLogging = nil;
  CkHttp_put_VerboseLogging: TCkHttp_put_VerboseLogging = nil;
  CkHttp_get_LastMethodSuccess: TCkHttp_get_LastMethodSuccess = nil;
  CkHttp_put_LastMethodSuccess: TCkHttp_put_LastMethodSuccess = nil;
  CkHttp_get_AbortCurrent: TCkHttp_get_AbortCurrent = nil;
  CkHttp_put_AbortCurrent: TCkHttp_put_AbortCurrent = nil;
  CkHttp_get_Accept: TCkHttp_get_Accept = nil;
  CkHttp_put_Accept: TCkHttp_put_Accept = nil;
  CkHttp_get_AllowGzip: TCkHttp_get_AllowGzip = nil;
  CkHttp_put_AllowGzip: TCkHttp_put_AllowGzip = nil;
  CkHttp_get_AutoAddHostHeader: TCkHttp_get_AutoAddHostHeader = nil;
  CkHttp_put_AutoAddHostHeader: TCkHttp_put_AutoAddHostHeader = nil;
  CkHttp_get_AwsAccessKey: TCkHttp_get_AwsAccessKey = nil;
  CkHttp_put_AwsAccessKey: TCkHttp_put_AwsAccessKey = nil;
  CkHttp_get_AwsEndpoint: TCkHttp_get_AwsEndpoint = nil;
  CkHttp_put_AwsEndpoint: TCkHttp_put_AwsEndpoint = nil;
  CkHttp_get_AwsRegion: TCkHttp_get_AwsRegion = nil;
  CkHttp_put_AwsRegion: TCkHttp_put_AwsRegion = nil;
  CkHttp_get_AwsSecretKey: TCkHttp_get_AwsSecretKey = nil;
  CkHttp_put_AwsSecretKey: TCkHttp_put_AwsSecretKey = nil;
  CkHttp_get_AwsSubResources: TCkHttp_get_AwsSubResources = nil;
  CkHttp_put_AwsSubResources: TCkHttp_put_AwsSubResources = nil;
  CkHttp_get_BandwidthThrottleDown: TCkHttp_get_BandwidthThrottleDown = nil;
  CkHttp_put_BandwidthThrottleDown: TCkHttp_put_BandwidthThrottleDown = nil;
  CkHttp_get_BandwidthThrottleUp: TCkHttp_get_BandwidthThrottleUp = nil;
  CkHttp_put_BandwidthThrottleUp: TCkHttp_put_BandwidthThrottleUp = nil;
  CkHttp_get_BasicAuth: TCkHttp_get_BasicAuth = nil;
  CkHttp_put_BasicAuth: TCkHttp_put_BasicAuth = nil;
  CkHttp_get_ClientIpAddress: TCkHttp_get_ClientIpAddress = nil;
  CkHttp_put_ClientIpAddress: TCkHttp_put_ClientIpAddress = nil;
  CkHttp_get_ConnectFailReason: TCkHttp_get_ConnectFailReason = nil;
  CkHttp_get_ConnectTimeout: TCkHttp_get_ConnectTimeout = nil;
  CkHttp_put_ConnectTimeout: TCkHttp_put_ConnectTimeout = nil;
  CkHttp_get_CookieDir: TCkHttp_get_CookieDir = nil;
  CkHttp_put_CookieDir: TCkHttp_put_CookieDir = nil;
  CkHttp_get_DefaultFreshPeriod: TCkHttp_get_DefaultFreshPeriod = nil;
  CkHttp_put_DefaultFreshPeriod: TCkHttp_put_DefaultFreshPeriod = nil;
  CkHttp_get_DigestAuth: TCkHttp_get_DigestAuth = nil;
  CkHttp_put_DigestAuth: TCkHttp_put_DigestAuth = nil;
  CkHttp_get_FetchFromCache: TCkHttp_get_FetchFromCache = nil;
  CkHttp_put_FetchFromCache: TCkHttp_put_FetchFromCache = nil;
  CkHttp_get_FinalRedirectUrl: TCkHttp_get_FinalRedirectUrl = nil;
  CkHttp_get_FollowRedirects: TCkHttp_get_FollowRedirects = nil;
  CkHttp_put_FollowRedirects: TCkHttp_put_FollowRedirects = nil;
  CkHttp_get_FreshnessAlgorithm: TCkHttp_get_FreshnessAlgorithm = nil;
  CkHttp_put_FreshnessAlgorithm: TCkHttp_put_FreshnessAlgorithm = nil;
  CkHttp_get_HeartbeatMs: TCkHttp_get_HeartbeatMs = nil;
  CkHttp_put_HeartbeatMs: TCkHttp_put_HeartbeatMs = nil;
  CkHttp_get_IgnoreMustRevalidate: TCkHttp_get_IgnoreMustRevalidate = nil;
  CkHttp_put_IgnoreMustRevalidate: TCkHttp_put_IgnoreMustRevalidate = nil;
  CkHttp_get_IgnoreNoCache: TCkHttp_get_IgnoreNoCache = nil;
  CkHttp_put_IgnoreNoCache: TCkHttp_put_IgnoreNoCache = nil;
  CkHttp_get_KeepResponseBody: TCkHttp_get_KeepResponseBody = nil;
  CkHttp_put_KeepResponseBody: TCkHttp_put_KeepResponseBody = nil;
  CkHttp_get_LMFactor: TCkHttp_get_LMFactor = nil;
  CkHttp_put_LMFactor: TCkHttp_put_LMFactor = nil;
  CkHttp_get_LastContentType: TCkHttp_get_LastContentType = nil;
  CkHttp_get_LastHeader: TCkHttp_get_LastHeader = nil;
  CkHttp_get_LastModDate: TCkHttp_get_LastModDate = nil;
  CkHttp_get_LastResponseBody: TCkHttp_get_LastResponseBody = nil;
  CkHttp_get_LastResponseHeader: TCkHttp_get_LastResponseHeader = nil;
  CkHttp_get_LastStatus: TCkHttp_get_LastStatus = nil;
  CkHttp_get_Login: TCkHttp_get_Login = nil;
  CkHttp_put_Login: TCkHttp_put_Login = nil;
  CkHttp_get_LoginDomain: TCkHttp_get_LoginDomain = nil;
  CkHttp_put_LoginDomain: TCkHttp_put_LoginDomain = nil;
  CkHttp_get_MaxConnections: TCkHttp_get_MaxConnections = nil;
  CkHttp_put_MaxConnections: TCkHttp_put_MaxConnections = nil;
  CkHttp_get_MaxFreshPeriod: TCkHttp_get_MaxFreshPeriod = nil;
  CkHttp_put_MaxFreshPeriod: TCkHttp_put_MaxFreshPeriod = nil;
  CkHttp_get_MaxResponseSize: TCkHttp_get_MaxResponseSize = nil;
  CkHttp_put_MaxResponseSize: TCkHttp_put_MaxResponseSize = nil;
  CkHttp_get_MaxUrlLen: TCkHttp_get_MaxUrlLen = nil;
  CkHttp_put_MaxUrlLen: TCkHttp_put_MaxUrlLen = nil;
  CkHttp_get_MinFreshPeriod: TCkHttp_get_MinFreshPeriod = nil;
  CkHttp_put_MinFreshPeriod: TCkHttp_put_MinFreshPeriod = nil;
  CkHttp_get_NegotiateAuth: TCkHttp_get_NegotiateAuth = nil;
  CkHttp_put_NegotiateAuth: TCkHttp_put_NegotiateAuth = nil;
  CkHttp_get_NtlmAuth: TCkHttp_get_NtlmAuth = nil;
  CkHttp_put_NtlmAuth: TCkHttp_put_NtlmAuth = nil;
  CkHttp_get_NumCacheLevels: TCkHttp_get_NumCacheLevels = nil;
  CkHttp_put_NumCacheLevels: TCkHttp_put_NumCacheLevels = nil;
  CkHttp_get_NumCacheRoots: TCkHttp_get_NumCacheRoots = nil;
  CkHttp_get_OAuth1: TCkHttp_get_OAuth1 = nil;
  CkHttp_put_OAuth1: TCkHttp_put_OAuth1 = nil;
  CkHttp_get_OAuthCallback: TCkHttp_get_OAuthCallback = nil;
  CkHttp_put_OAuthCallback: TCkHttp_put_OAuthCallback = nil;
  CkHttp_get_OAuthConsumerKey: TCkHttp_get_OAuthConsumerKey = nil;
  CkHttp_put_OAuthConsumerKey: TCkHttp_put_OAuthConsumerKey = nil;
  CkHttp_get_OAuthConsumerSecret: TCkHttp_get_OAuthConsumerSecret = nil;
  CkHttp_put_OAuthConsumerSecret: TCkHttp_put_OAuthConsumerSecret = nil;
  CkHttp_get_OAuthRealm: TCkHttp_get_OAuthRealm = nil;
  CkHttp_put_OAuthRealm: TCkHttp_put_OAuthRealm = nil;
  CkHttp_get_OAuthSigMethod: TCkHttp_get_OAuthSigMethod = nil;
  CkHttp_put_OAuthSigMethod: TCkHttp_put_OAuthSigMethod = nil;
  CkHttp_get_OAuthToken: TCkHttp_get_OAuthToken = nil;
  CkHttp_put_OAuthToken: TCkHttp_put_OAuthToken = nil;
  CkHttp_get_OAuthTokenSecret: TCkHttp_get_OAuthTokenSecret = nil;
  CkHttp_put_OAuthTokenSecret: TCkHttp_put_OAuthTokenSecret = nil;
  CkHttp_get_OAuthVerifier: TCkHttp_get_OAuthVerifier = nil;
  CkHttp_put_OAuthVerifier: TCkHttp_put_OAuthVerifier = nil;
  CkHttp_get_Password: TCkHttp_get_Password = nil;
  CkHttp_put_Password: TCkHttp_put_Password = nil;
  CkHttp_get_PercentDoneScale: TCkHttp_get_PercentDoneScale = nil;
  CkHttp_put_PercentDoneScale: TCkHttp_put_PercentDoneScale = nil;
  CkHttp_get_PreferIpv6: TCkHttp_get_PreferIpv6 = nil;
  CkHttp_put_PreferIpv6: TCkHttp_put_PreferIpv6 = nil;
  CkHttp_get_ProxyAuthMethod: TCkHttp_get_ProxyAuthMethod = nil;
  CkHttp_put_ProxyAuthMethod: TCkHttp_put_ProxyAuthMethod = nil;
  CkHttp_get_ProxyDomain: TCkHttp_get_ProxyDomain = nil;
  CkHttp_put_ProxyDomain: TCkHttp_put_ProxyDomain = nil;
  CkHttp_get_ProxyLogin: TCkHttp_get_ProxyLogin = nil;
  CkHttp_put_ProxyLogin: TCkHttp_put_ProxyLogin = nil;
  CkHttp_get_ProxyLoginDomain: TCkHttp_get_ProxyLoginDomain = nil;
  CkHttp_put_ProxyLoginDomain: TCkHttp_put_ProxyLoginDomain = nil;
  CkHttp_get_ProxyPassword: TCkHttp_get_ProxyPassword = nil;
  CkHttp_put_ProxyPassword: TCkHttp_put_ProxyPassword = nil;
  CkHttp_get_ProxyPort: TCkHttp_get_ProxyPort = nil;
  CkHttp_put_ProxyPort: TCkHttp_put_ProxyPort = nil;
  CkHttp_get_ReadTimeout: TCkHttp_get_ReadTimeout = nil;
  CkHttp_put_ReadTimeout: TCkHttp_put_ReadTimeout = nil;
  CkHttp_get_RedirectVerb: TCkHttp_get_RedirectVerb = nil;
  CkHttp_put_RedirectVerb: TCkHttp_put_RedirectVerb = nil;
  CkHttp_get_RequireSslCertVerify: TCkHttp_get_RequireSslCertVerify = nil;
  CkHttp_put_RequireSslCertVerify: TCkHttp_put_RequireSslCertVerify = nil;
  CkHttp_get_RequiredContentType: TCkHttp_get_RequiredContentType = nil;
  CkHttp_put_RequiredContentType: TCkHttp_put_RequiredContentType = nil;
  CkHttp_get_SaveCookies: TCkHttp_get_SaveCookies = nil;
  CkHttp_put_SaveCookies: TCkHttp_put_SaveCookies = nil;
  CkHttp_get_SendBufferSize: TCkHttp_get_SendBufferSize = nil;
  CkHttp_put_SendBufferSize: TCkHttp_put_SendBufferSize = nil;
  CkHttp_get_SendCookies: TCkHttp_get_SendCookies = nil;
  CkHttp_put_SendCookies: TCkHttp_put_SendCookies = nil;
  CkHttp_get_SessionLogFilename: TCkHttp_get_SessionLogFilename = nil;
  CkHttp_put_SessionLogFilename: TCkHttp_put_SessionLogFilename = nil;
  CkHttp_get_SoRcvBuf: TCkHttp_get_SoRcvBuf = nil;
  CkHttp_put_SoRcvBuf: TCkHttp_put_SoRcvBuf = nil;
  CkHttp_get_SoSndBuf: TCkHttp_get_SoSndBuf = nil;
  CkHttp_put_SoSndBuf: TCkHttp_put_SoSndBuf = nil;
  CkHttp_get_SocksHostname: TCkHttp_get_SocksHostname = nil;
  CkHttp_put_SocksHostname: TCkHttp_put_SocksHostname = nil;
  CkHttp_get_SocksPassword: TCkHttp_get_SocksPassword = nil;
  CkHttp_put_SocksPassword: TCkHttp_put_SocksPassword = nil;
  CkHttp_get_SocksPort: TCkHttp_get_SocksPort = nil;
  CkHttp_put_SocksPort: TCkHttp_put_SocksPort = nil;
  CkHttp_get_SocksUsername: TCkHttp_get_SocksUsername = nil;
  CkHttp_put_SocksUsername: TCkHttp_put_SocksUsername = nil;
  CkHttp_get_SocksVersion: TCkHttp_get_SocksVersion = nil;
  CkHttp_put_SocksVersion: TCkHttp_put_SocksVersion = nil;
  CkHttp_get_SslAllowedCiphers: TCkHttp_get_SslAllowedCiphers = nil;
  CkHttp_put_SslAllowedCiphers: TCkHttp_put_SslAllowedCiphers = nil;
  CkHttp_get_SslProtocol: TCkHttp_get_SslProtocol = nil;
  CkHttp_put_SslProtocol: TCkHttp_put_SslProtocol = nil;
  CkHttp_get_StreamResponseBodyPath: TCkHttp_get_StreamResponseBodyPath = nil;
  CkHttp_put_StreamResponseBodyPath: TCkHttp_put_StreamResponseBodyPath = nil;
  CkHttp_get_TlsCipherSuite: TCkHttp_get_TlsCipherSuite = nil;
  CkHttp_get_TlsPinSet: TCkHttp_get_TlsPinSet = nil;
  CkHttp_put_TlsPinSet: TCkHttp_put_TlsPinSet = nil;
  CkHttp_get_TlsVersion: TCkHttp_get_TlsVersion = nil;
  CkHttp_get_UpdateCache: TCkHttp_get_UpdateCache = nil;
  CkHttp_put_UpdateCache: TCkHttp_put_UpdateCache = nil;
  CkHttp_get_UseIEProxy: TCkHttp_get_UseIEProxy = nil;
  CkHttp_put_UseIEProxy: TCkHttp_put_UseIEProxy = nil;
  CkHttp_get_UserAgent: TCkHttp_get_UserAgent = nil;
  CkHttp_put_UserAgent: TCkHttp_put_UserAgent = nil;
  CkHttp_get_WasRedirected: TCkHttp_get_WasRedirected = nil;
  CkHttp_get_AllowHeaderFolding: TCkHttp_get_AllowHeaderFolding = nil;
  CkHttp_put_AllowHeaderFolding: TCkHttp_put_AllowHeaderFolding = nil;
  CkHttp_get_AuthToken: TCkHttp_get_AuthToken = nil;
  CkHttp_put_AuthToken: TCkHttp_put_AuthToken = nil;
  CkHttp_get_LastStatusText: TCkHttp_get_LastStatusText = nil;
  CkHttp_get_UncommonOptions: TCkHttp_get_UncommonOptions = nil;
  CkHttp_put_UncommonOptions: TCkHttp_put_UncommonOptions = nil;
  CkHttp_get_SniHostname: TCkHttp_get_SniHostname = nil;
  CkHttp_put_SniHostname: TCkHttp_put_SniHostname = nil;
  CkHttp_get_ProxyDirectTls: TCkHttp_get_ProxyDirectTls = nil;
  CkHttp_put_ProxyDirectTls: TCkHttp_put_ProxyDirectTls = nil;
  CkHttp_get_AuthSignature: TCkHttp_get_AuthSignature = nil;
  CkHttp_put_AuthSignature: TCkHttp_put_AuthSignature = nil;
  CkHttp_get_OAuthBodyHash: TCkHttp_get_OAuthBodyHash = nil;
  CkHttp_put_OAuthBodyHash: TCkHttp_put_OAuthBodyHash = nil;
  CkHttp_get_LastFromCache: TCkHttp_get_LastFromCache = nil;
  CkHttp_get_ReceivedCertReq: TCkHttp_get_ReceivedCertReq = nil;
  CkHttp_get_AwsSessionToken: TCkHttp_get_AwsSessionToken = nil;
  CkHttp_put_AwsSessionToken: TCkHttp_put_AwsSessionToken = nil;
  CkHttp_get_RequireHostnameMatch: TCkHttp_get_RequireHostnameMatch = nil;
  CkHttp_put_RequireHostnameMatch: TCkHttp_put_RequireHostnameMatch = nil;
  CkHttp_get_EnableSecrets: TCkHttp_get_EnableSecrets = nil;
  CkHttp_put_EnableSecrets: TCkHttp_put_EnableSecrets = nil;
  CkHttp_AddCacheRoot: TCkHttp_AddCacheRoot = nil;
  CkHttp_CloseAllConnections: TCkHttp_CloseAllConnections = nil;
  CkHttp_DnsCacheClear: TCkHttp_DnsCacheClear = nil;
  CkHttp_Download: TCkHttp_Download = nil;
  CkHttp_DownloadAppend: TCkHttp_DownloadAppend = nil;
  CkHttp_DownloadHash: TCkHttp_DownloadHash = nil;
  CkHttp_ExtractMetaRefreshUrl: TCkHttp_ExtractMetaRefreshUrl = nil;
  CkHttp_G_SvcOauthAccessToken: TCkHttp_G_SvcOauthAccessToken = nil;
  CkHttp_G_SvcOauthAccessToken2: TCkHttp_G_SvcOauthAccessToken2 = nil;
  CkHttp_GenTimeStamp: TCkHttp_GenTimeStamp = nil;
  CkHttp_GetCacheRoot: TCkHttp_GetCacheRoot = nil;
  CkHttp_GetCookieXml: TCkHttp_GetCookieXml = nil;
  CkHttp_GetDomain: TCkHttp_GetDomain = nil;
  CkHttp_GetRequestHeader: TCkHttp_GetRequestHeader = nil;
  CkHttp_GetUrlPath: TCkHttp_GetUrlPath = nil;
  CkHttp_HasRequestHeader: TCkHttp_HasRequestHeader = nil;
  CkHttp_QuickDeleteStr: TCkHttp_QuickDeleteStr = nil;
  CkHttp_QuickGetStr: TCkHttp_QuickGetStr = nil;
  CkHttp_RemoveRequestHeader: TCkHttp_RemoveRequestHeader = nil;
  CkHttp_RenderGet: TCkHttp_RenderGet = nil;
  CkHttp_ResumeDownload: TCkHttp_ResumeDownload = nil;
  CkHttp_S3_CreateBucket: TCkHttp_S3_CreateBucket = nil;
  CkHttp_S3_DeleteBucket: TCkHttp_S3_DeleteBucket = nil;
  CkHttp_S3_DeleteObject: TCkHttp_S3_DeleteObject = nil;
  CkHttp_S3_DownloadFile: TCkHttp_S3_DownloadFile = nil;
  CkHttp_S3_DownloadString: TCkHttp_S3_DownloadString = nil;
  CkHttp_S3_FileExists: TCkHttp_S3_FileExists = nil;
  CkHttp_S3_ListBucketObjects: TCkHttp_S3_ListBucketObjects = nil;
  CkHttp_S3_ListBuckets: TCkHttp_S3_ListBuckets = nil;
  CkHttp_S3_UploadFile: TCkHttp_S3_UploadFile = nil;
  CkHttp_S3_UploadString: TCkHttp_S3_UploadString = nil;
  CkHttp_SetCookieXml: TCkHttp_SetCookieXml = nil;
  CkHttp_SetOAuthRsaKey: TCkHttp_SetOAuthRsaKey = nil;
  CkHttp_SetRequestHeader: TCkHttp_SetRequestHeader = nil;
  CkHttp_SetSslClientCert: TCkHttp_SetSslClientCert = nil;
  CkHttp_SetSslClientCertPem: TCkHttp_SetSslClientCertPem = nil;
  CkHttp_SetSslClientCertPfx: TCkHttp_SetSslClientCertPfx = nil;
  CkHttp_SleepMs: TCkHttp_SleepMs = nil;
  CkHttp_UrlDecode: TCkHttp_UrlDecode = nil;
  CkHttp_UrlEncode: TCkHttp_UrlEncode = nil;
  CkHttp_DownloadBd: TCkHttp_DownloadBd = nil;
  CkHttp_DownloadSb: TCkHttp_DownloadSb = nil;
  CkHttp_QuickGetSb: TCkHttp_QuickGetSb = nil;
  CkHttp_QuickGetBd: TCkHttp_QuickGetBd = nil;
  CkHttp_SetUrlVar: TCkHttp_SetUrlVar = nil;
  CkHttp_ClearUrlVars: TCkHttp_ClearUrlVars = nil;
  CkHttp_SharePointOnlineAuth: TCkHttp_SharePointOnlineAuth = nil;
  CkHttp_ResumeDownloadBd: TCkHttp_ResumeDownloadBd = nil;
  CkHttp_CreateTimestampRequest: TCkHttp_CreateTimestampRequest = nil;
  CkHttp_VerifyTimestampReply: TCkHttp_VerifyTimestampReply = nil;
  CkHttp_CreateOcspRequest: TCkHttp_CreateOcspRequest = nil;
  CkHttp_ParseOcspReply: TCkHttp_ParseOcspReply = nil;
  CkHttp_SetSecurePassword: TCkHttp_SetSecurePassword = nil;
  CkHttp_S3_UploadBd: TCkHttp_S3_UploadBd = nil;
  CkHttp_S3_DownloadBd: TCkHttp_S3_DownloadBd = nil;
  CkHttp_ClearHeaders: TCkHttp_ClearHeaders = nil;
  CkHttp_S3_GenPresignedUrl: TCkHttp_S3_GenPresignedUrl = nil;
  CkHttp_SetSslCertRequirement: TCkHttp_SetSslCertRequirement = nil;
  CkHttp_OcspCheck: TCkHttp_OcspCheck = nil;
  CkHttp_SetAuthPrivateKey: TCkHttp_SetAuthPrivateKey = nil;
  CkHttp_SetAuthTokenSb: TCkHttp_SetAuthTokenSb = nil;
  CkHttp_GetLastJsonData: TCkHttp_GetLastJsonData = nil;
  CkHttp_GetServerCert: TCkHttp_GetServerCert = nil;
  CkHttp_HttpBd: TCkHttp_HttpBd = nil;
  CkHttp_HttpNoBody: TCkHttp_HttpNoBody = nil;
  CkHttp_HttpStr: TCkHttp_HttpStr = nil;
  CkHttp_HttpSb: TCkHttp_HttpSb = nil;
  CkHttp_HttpJson: TCkHttp_HttpJson = nil;
  CkHttp_HttpReq: TCkHttp_HttpReq = nil;
  CkHttp_HttpFile: TCkHttp_HttpFile = nil;
  CkHttp_HttpParams: TCkHttp_HttpParams = nil;
  CkHttp_HttpSReq: TCkHttp_HttpSReq = nil;
  CkHttp_S3_DeleteObjects: TCkHttp_S3_DeleteObjects = nil;
  CkHttp_ClearInMemoryCookies: TCkHttp_ClearInMemoryCookies = nil;
  CkHttp_SetDPoPKey: TCkHttp_SetDPoPKey = nil;

constructor THttp.Create;
begin
  inherited Create;
  FHandle := CkHttp_Create();
end;

destructor THttp.Destroy;
begin
  if FHandle <> nil then
    CkHttp_Dispose(FHandle);
  FHandle := nil;
  inherited;
end;

{ ---- Event callback thunks ---- }
{ Standalone cdecl functions registered with the C bridge.  The bridge
  passes back the userData pointer, which carries the Pascal object
  instance.  A non-zero return value aborts the running method. }

function THttp_AbortCheckThunk(userData: Pointer): Integer; cdecl;
var
  obj: THttp;
begin
  Result := 0;
  obj := THttp(userData);
  if Assigned(obj) and Assigned(obj.FOnAbortCheck) then
    if obj.FOnAbortCheck(obj) then Result := 1;
end;

function THttp_PercentDoneThunk(pctDone: Integer; userData: Pointer): Integer; cdecl;
var
  obj: THttp;
begin
  Result := 0;
  obj := THttp(userData);
  if Assigned(obj) and Assigned(obj.FOnPercentDone) then
    if obj.FOnPercentDone(obj, pctDone) then Result := 1;
end;

procedure THttp_ProgressInfoThunk(name: PAnsiChar; value: PAnsiChar; userData: Pointer); cdecl;
var
  obj: THttp;
begin
  obj := THttp(userData);
  if Assigned(obj) and Assigned(obj.FOnProgressInfo) then
    obj.FOnProgressInfo(obj, CkToStr(name), CkToStr(value));
end;

procedure THttp.SetOnAbortCheck(AValue: TChilkatAbortCheckEvent);
begin
  FOnAbortCheck := AValue;
  if Assigned(AValue) then
    CkHttp_SetAbortCheckCallback(FHandle, @THttp_AbortCheckThunk, Self)
  else
    CkHttp_SetAbortCheckCallback(FHandle, nil, nil);
end;

procedure THttp.SetOnPercentDone(AValue: TChilkatPercentDoneEvent);
begin
  FOnPercentDone := AValue;
  if Assigned(AValue) then
    CkHttp_SetPercentDoneCallback(FHandle, @THttp_PercentDoneThunk, Self)
  else
    CkHttp_SetPercentDoneCallback(FHandle, nil, nil);
end;

procedure THttp.SetOnProgressInfo(AValue: TChilkatProgressInfoEvent);
begin
  FOnProgressInfo := AValue;
  if Assigned(AValue) then
    CkHttp_SetProgressInfoCallback(FHandle, @THttp_ProgressInfoThunk, Self)
  else
    CkHttp_SetProgressInfoCallback(FHandle, nil, nil);
end;

function THttp.GetLastErrorHtml: string;
begin
  Result := CkToStr(CkHttp_get_LastErrorHtml(FHandle));
end;

function THttp.GetLastErrorText: string;
begin
  Result := CkToStr(CkHttp_get_LastErrorText(FHandle));
end;

function THttp.GetLastErrorXml: string;
begin
  Result := CkToStr(CkHttp_get_LastErrorXml(FHandle));
end;

function THttp.GetVersion: string;
begin
  Result := CkToStr(CkHttp_get_Version(FHandle));
end;

function THttp.GetDebugLogFilePath: string;
begin
  Result := CkToStr(CkHttp_get_DebugLogFilePath(FHandle));
end;

procedure THttp.SetDebugLogFilePath(AValue: string);
begin
  CkHttp_put_DebugLogFilePath(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetVerboseLogging: Boolean;
begin
  Result := Boolean(CkHttp_get_VerboseLogging(FHandle));
end;

procedure THttp.SetVerboseLogging(AValue: Boolean);
begin
  CkHttp_put_VerboseLogging(FHandle, LongBool(AValue));
end;

function THttp.GetLastMethodSuccess: Boolean;
begin
  Result := Boolean(CkHttp_get_LastMethodSuccess(FHandle));
end;

procedure THttp.SetLastMethodSuccess(AValue: Boolean);
begin
  CkHttp_put_LastMethodSuccess(FHandle, LongBool(AValue));
end;

function THttp.GetAbortCurrent: Boolean;
begin
  Result := Boolean(CkHttp_get_AbortCurrent(FHandle));
end;

procedure THttp.SetAbortCurrent(AValue: Boolean);
begin
  CkHttp_put_AbortCurrent(FHandle, LongBool(AValue));
end;

function THttp.GetAccept: string;
begin
  Result := CkToStr(CkHttp_get_Accept(FHandle));
end;

procedure THttp.SetAccept(AValue: string);
begin
  CkHttp_put_Accept(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetAllowGzip: Boolean;
begin
  Result := Boolean(CkHttp_get_AllowGzip(FHandle));
end;

procedure THttp.SetAllowGzip(AValue: Boolean);
begin
  CkHttp_put_AllowGzip(FHandle, LongBool(AValue));
end;

function THttp.GetAutoAddHostHeader: Boolean;
begin
  Result := Boolean(CkHttp_get_AutoAddHostHeader(FHandle));
end;

procedure THttp.SetAutoAddHostHeader(AValue: Boolean);
begin
  CkHttp_put_AutoAddHostHeader(FHandle, LongBool(AValue));
end;

function THttp.GetAwsAccessKey: string;
begin
  Result := CkToStr(CkHttp_get_AwsAccessKey(FHandle));
end;

procedure THttp.SetAwsAccessKey(AValue: string);
begin
  CkHttp_put_AwsAccessKey(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetAwsEndpoint: string;
begin
  Result := CkToStr(CkHttp_get_AwsEndpoint(FHandle));
end;

procedure THttp.SetAwsEndpoint(AValue: string);
begin
  CkHttp_put_AwsEndpoint(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetAwsRegion: string;
begin
  Result := CkToStr(CkHttp_get_AwsRegion(FHandle));
end;

procedure THttp.SetAwsRegion(AValue: string);
begin
  CkHttp_put_AwsRegion(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetAwsSecretKey: string;
begin
  Result := CkToStr(CkHttp_get_AwsSecretKey(FHandle));
end;

procedure THttp.SetAwsSecretKey(AValue: string);
begin
  CkHttp_put_AwsSecretKey(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetAwsSubResources: string;
begin
  Result := CkToStr(CkHttp_get_AwsSubResources(FHandle));
end;

procedure THttp.SetAwsSubResources(AValue: string);
begin
  CkHttp_put_AwsSubResources(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetBandwidthThrottleDown: Integer;
begin
  Result := CkHttp_get_BandwidthThrottleDown(FHandle);
end;

procedure THttp.SetBandwidthThrottleDown(AValue: Integer);
begin
  CkHttp_put_BandwidthThrottleDown(FHandle, AValue);
end;

function THttp.GetBandwidthThrottleUp: Integer;
begin
  Result := CkHttp_get_BandwidthThrottleUp(FHandle);
end;

procedure THttp.SetBandwidthThrottleUp(AValue: Integer);
begin
  CkHttp_put_BandwidthThrottleUp(FHandle, AValue);
end;

function THttp.GetBasicAuth: Boolean;
begin
  Result := Boolean(CkHttp_get_BasicAuth(FHandle));
end;

procedure THttp.SetBasicAuth(AValue: Boolean);
begin
  CkHttp_put_BasicAuth(FHandle, LongBool(AValue));
end;

function THttp.GetClientIpAddress: string;
begin
  Result := CkToStr(CkHttp_get_ClientIpAddress(FHandle));
end;

procedure THttp.SetClientIpAddress(AValue: string);
begin
  CkHttp_put_ClientIpAddress(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetConnectFailReason: Integer;
begin
  Result := CkHttp_get_ConnectFailReason(FHandle);
end;

function THttp.GetConnectTimeout: Integer;
begin
  Result := CkHttp_get_ConnectTimeout(FHandle);
end;

procedure THttp.SetConnectTimeout(AValue: Integer);
begin
  CkHttp_put_ConnectTimeout(FHandle, AValue);
end;

function THttp.GetCookieDir: string;
begin
  Result := CkToStr(CkHttp_get_CookieDir(FHandle));
end;

procedure THttp.SetCookieDir(AValue: string);
begin
  CkHttp_put_CookieDir(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetDefaultFreshPeriod: Integer;
begin
  Result := CkHttp_get_DefaultFreshPeriod(FHandle);
end;

procedure THttp.SetDefaultFreshPeriod(AValue: Integer);
begin
  CkHttp_put_DefaultFreshPeriod(FHandle, AValue);
end;

function THttp.GetDigestAuth: Boolean;
begin
  Result := Boolean(CkHttp_get_DigestAuth(FHandle));
end;

procedure THttp.SetDigestAuth(AValue: Boolean);
begin
  CkHttp_put_DigestAuth(FHandle, LongBool(AValue));
end;

function THttp.GetFetchFromCache: Boolean;
begin
  Result := Boolean(CkHttp_get_FetchFromCache(FHandle));
end;

procedure THttp.SetFetchFromCache(AValue: Boolean);
begin
  CkHttp_put_FetchFromCache(FHandle, LongBool(AValue));
end;

function THttp.GetFinalRedirectUrl: string;
begin
  Result := CkToStr(CkHttp_get_FinalRedirectUrl(FHandle));
end;

function THttp.GetFollowRedirects: Boolean;
begin
  Result := Boolean(CkHttp_get_FollowRedirects(FHandle));
end;

procedure THttp.SetFollowRedirects(AValue: Boolean);
begin
  CkHttp_put_FollowRedirects(FHandle, LongBool(AValue));
end;

function THttp.GetFreshnessAlgorithm: Integer;
begin
  Result := CkHttp_get_FreshnessAlgorithm(FHandle);
end;

procedure THttp.SetFreshnessAlgorithm(AValue: Integer);
begin
  CkHttp_put_FreshnessAlgorithm(FHandle, AValue);
end;

function THttp.GetHeartbeatMs: Integer;
begin
  Result := CkHttp_get_HeartbeatMs(FHandle);
end;

procedure THttp.SetHeartbeatMs(AValue: Integer);
begin
  CkHttp_put_HeartbeatMs(FHandle, AValue);
end;

function THttp.GetIgnoreMustRevalidate: Boolean;
begin
  Result := Boolean(CkHttp_get_IgnoreMustRevalidate(FHandle));
end;

procedure THttp.SetIgnoreMustRevalidate(AValue: Boolean);
begin
  CkHttp_put_IgnoreMustRevalidate(FHandle, LongBool(AValue));
end;

function THttp.GetIgnoreNoCache: Boolean;
begin
  Result := Boolean(CkHttp_get_IgnoreNoCache(FHandle));
end;

procedure THttp.SetIgnoreNoCache(AValue: Boolean);
begin
  CkHttp_put_IgnoreNoCache(FHandle, LongBool(AValue));
end;

function THttp.GetKeepResponseBody: Boolean;
begin
  Result := Boolean(CkHttp_get_KeepResponseBody(FHandle));
end;

procedure THttp.SetKeepResponseBody(AValue: Boolean);
begin
  CkHttp_put_KeepResponseBody(FHandle, LongBool(AValue));
end;

function THttp.GetLMFactor: Integer;
begin
  Result := CkHttp_get_LMFactor(FHandle);
end;

procedure THttp.SetLMFactor(AValue: Integer);
begin
  CkHttp_put_LMFactor(FHandle, AValue);
end;

function THttp.GetLastContentType: string;
begin
  Result := CkToStr(CkHttp_get_LastContentType(FHandle));
end;

function THttp.GetLastHeader: string;
begin
  Result := CkToStr(CkHttp_get_LastHeader(FHandle));
end;

function THttp.GetLastModDate: string;
begin
  Result := CkToStr(CkHttp_get_LastModDate(FHandle));
end;

function THttp.GetLastResponseBody: string;
begin
  Result := CkToStr(CkHttp_get_LastResponseBody(FHandle));
end;

function THttp.GetLastResponseHeader: string;
begin
  Result := CkToStr(CkHttp_get_LastResponseHeader(FHandle));
end;

function THttp.GetLastStatus: Integer;
begin
  Result := CkHttp_get_LastStatus(FHandle);
end;

function THttp.GetLogin: string;
begin
  Result := CkToStr(CkHttp_get_Login(FHandle));
end;

procedure THttp.SetLogin(AValue: string);
begin
  CkHttp_put_Login(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetLoginDomain: string;
begin
  Result := CkToStr(CkHttp_get_LoginDomain(FHandle));
end;

procedure THttp.SetLoginDomain(AValue: string);
begin
  CkHttp_put_LoginDomain(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetMaxConnections: Integer;
begin
  Result := CkHttp_get_MaxConnections(FHandle);
end;

procedure THttp.SetMaxConnections(AValue: Integer);
begin
  CkHttp_put_MaxConnections(FHandle, AValue);
end;

function THttp.GetMaxFreshPeriod: Integer;
begin
  Result := CkHttp_get_MaxFreshPeriod(FHandle);
end;

procedure THttp.SetMaxFreshPeriod(AValue: Integer);
begin
  CkHttp_put_MaxFreshPeriod(FHandle, AValue);
end;

function THttp.GetMaxResponseSize: LongWord;
begin
  Result := CkHttp_get_MaxResponseSize(FHandle);
end;

procedure THttp.SetMaxResponseSize(AValue: LongWord);
begin
  CkHttp_put_MaxResponseSize(FHandle, AValue);
end;

function THttp.GetMaxUrlLen: Integer;
begin
  Result := CkHttp_get_MaxUrlLen(FHandle);
end;

procedure THttp.SetMaxUrlLen(AValue: Integer);
begin
  CkHttp_put_MaxUrlLen(FHandle, AValue);
end;

function THttp.GetMinFreshPeriod: Integer;
begin
  Result := CkHttp_get_MinFreshPeriod(FHandle);
end;

procedure THttp.SetMinFreshPeriod(AValue: Integer);
begin
  CkHttp_put_MinFreshPeriod(FHandle, AValue);
end;

function THttp.GetNegotiateAuth: Boolean;
begin
  Result := Boolean(CkHttp_get_NegotiateAuth(FHandle));
end;

procedure THttp.SetNegotiateAuth(AValue: Boolean);
begin
  CkHttp_put_NegotiateAuth(FHandle, LongBool(AValue));
end;

function THttp.GetNtlmAuth: Boolean;
begin
  Result := Boolean(CkHttp_get_NtlmAuth(FHandle));
end;

procedure THttp.SetNtlmAuth(AValue: Boolean);
begin
  CkHttp_put_NtlmAuth(FHandle, LongBool(AValue));
end;

function THttp.GetNumCacheLevels: Integer;
begin
  Result := CkHttp_get_NumCacheLevels(FHandle);
end;

procedure THttp.SetNumCacheLevels(AValue: Integer);
begin
  CkHttp_put_NumCacheLevels(FHandle, AValue);
end;

function THttp.GetNumCacheRoots: Integer;
begin
  Result := CkHttp_get_NumCacheRoots(FHandle);
end;

function THttp.GetOAuth1: Boolean;
begin
  Result := Boolean(CkHttp_get_OAuth1(FHandle));
end;

procedure THttp.SetOAuth1(AValue: Boolean);
begin
  CkHttp_put_OAuth1(FHandle, LongBool(AValue));
end;

function THttp.GetOAuthCallback: string;
begin
  Result := CkToStr(CkHttp_get_OAuthCallback(FHandle));
end;

procedure THttp.SetOAuthCallback(AValue: string);
begin
  CkHttp_put_OAuthCallback(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetOAuthConsumerKey: string;
begin
  Result := CkToStr(CkHttp_get_OAuthConsumerKey(FHandle));
end;

procedure THttp.SetOAuthConsumerKey(AValue: string);
begin
  CkHttp_put_OAuthConsumerKey(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetOAuthConsumerSecret: string;
begin
  Result := CkToStr(CkHttp_get_OAuthConsumerSecret(FHandle));
end;

procedure THttp.SetOAuthConsumerSecret(AValue: string);
begin
  CkHttp_put_OAuthConsumerSecret(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetOAuthRealm: string;
begin
  Result := CkToStr(CkHttp_get_OAuthRealm(FHandle));
end;

procedure THttp.SetOAuthRealm(AValue: string);
begin
  CkHttp_put_OAuthRealm(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetOAuthSigMethod: string;
begin
  Result := CkToStr(CkHttp_get_OAuthSigMethod(FHandle));
end;

procedure THttp.SetOAuthSigMethod(AValue: string);
begin
  CkHttp_put_OAuthSigMethod(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetOAuthToken: string;
begin
  Result := CkToStr(CkHttp_get_OAuthToken(FHandle));
end;

procedure THttp.SetOAuthToken(AValue: string);
begin
  CkHttp_put_OAuthToken(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetOAuthTokenSecret: string;
begin
  Result := CkToStr(CkHttp_get_OAuthTokenSecret(FHandle));
end;

procedure THttp.SetOAuthTokenSecret(AValue: string);
begin
  CkHttp_put_OAuthTokenSecret(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetOAuthVerifier: string;
begin
  Result := CkToStr(CkHttp_get_OAuthVerifier(FHandle));
end;

procedure THttp.SetOAuthVerifier(AValue: string);
begin
  CkHttp_put_OAuthVerifier(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetPassword: string;
begin
  Result := CkToStr(CkHttp_get_Password(FHandle));
end;

procedure THttp.SetPassword(AValue: string);
begin
  CkHttp_put_Password(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetPercentDoneScale: Integer;
begin
  Result := CkHttp_get_PercentDoneScale(FHandle);
end;

procedure THttp.SetPercentDoneScale(AValue: Integer);
begin
  CkHttp_put_PercentDoneScale(FHandle, AValue);
end;

function THttp.GetPreferIpv6: Boolean;
begin
  Result := Boolean(CkHttp_get_PreferIpv6(FHandle));
end;

procedure THttp.SetPreferIpv6(AValue: Boolean);
begin
  CkHttp_put_PreferIpv6(FHandle, LongBool(AValue));
end;

function THttp.GetProxyAuthMethod: string;
begin
  Result := CkToStr(CkHttp_get_ProxyAuthMethod(FHandle));
end;

procedure THttp.SetProxyAuthMethod(AValue: string);
begin
  CkHttp_put_ProxyAuthMethod(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetProxyDomain: string;
begin
  Result := CkToStr(CkHttp_get_ProxyDomain(FHandle));
end;

procedure THttp.SetProxyDomain(AValue: string);
begin
  CkHttp_put_ProxyDomain(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetProxyLogin: string;
begin
  Result := CkToStr(CkHttp_get_ProxyLogin(FHandle));
end;

procedure THttp.SetProxyLogin(AValue: string);
begin
  CkHttp_put_ProxyLogin(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetProxyLoginDomain: string;
begin
  Result := CkToStr(CkHttp_get_ProxyLoginDomain(FHandle));
end;

procedure THttp.SetProxyLoginDomain(AValue: string);
begin
  CkHttp_put_ProxyLoginDomain(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetProxyPassword: string;
begin
  Result := CkToStr(CkHttp_get_ProxyPassword(FHandle));
end;

procedure THttp.SetProxyPassword(AValue: string);
begin
  CkHttp_put_ProxyPassword(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetProxyPort: Integer;
begin
  Result := CkHttp_get_ProxyPort(FHandle);
end;

procedure THttp.SetProxyPort(AValue: Integer);
begin
  CkHttp_put_ProxyPort(FHandle, AValue);
end;

function THttp.GetReadTimeout: Integer;
begin
  Result := CkHttp_get_ReadTimeout(FHandle);
end;

procedure THttp.SetReadTimeout(AValue: Integer);
begin
  CkHttp_put_ReadTimeout(FHandle, AValue);
end;

function THttp.GetRedirectVerb: string;
begin
  Result := CkToStr(CkHttp_get_RedirectVerb(FHandle));
end;

procedure THttp.SetRedirectVerb(AValue: string);
begin
  CkHttp_put_RedirectVerb(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetRequireSslCertVerify: Boolean;
begin
  Result := Boolean(CkHttp_get_RequireSslCertVerify(FHandle));
end;

procedure THttp.SetRequireSslCertVerify(AValue: Boolean);
begin
  CkHttp_put_RequireSslCertVerify(FHandle, LongBool(AValue));
end;

function THttp.GetRequiredContentType: string;
begin
  Result := CkToStr(CkHttp_get_RequiredContentType(FHandle));
end;

procedure THttp.SetRequiredContentType(AValue: string);
begin
  CkHttp_put_RequiredContentType(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetSaveCookies: Boolean;
begin
  Result := Boolean(CkHttp_get_SaveCookies(FHandle));
end;

procedure THttp.SetSaveCookies(AValue: Boolean);
begin
  CkHttp_put_SaveCookies(FHandle, LongBool(AValue));
end;

function THttp.GetSendBufferSize: Integer;
begin
  Result := CkHttp_get_SendBufferSize(FHandle);
end;

procedure THttp.SetSendBufferSize(AValue: Integer);
begin
  CkHttp_put_SendBufferSize(FHandle, AValue);
end;

function THttp.GetSendCookies: Boolean;
begin
  Result := Boolean(CkHttp_get_SendCookies(FHandle));
end;

procedure THttp.SetSendCookies(AValue: Boolean);
begin
  CkHttp_put_SendCookies(FHandle, LongBool(AValue));
end;

function THttp.GetSessionLogFilename: string;
begin
  Result := CkToStr(CkHttp_get_SessionLogFilename(FHandle));
end;

procedure THttp.SetSessionLogFilename(AValue: string);
begin
  CkHttp_put_SessionLogFilename(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetSoRcvBuf: Integer;
begin
  Result := CkHttp_get_SoRcvBuf(FHandle);
end;

procedure THttp.SetSoRcvBuf(AValue: Integer);
begin
  CkHttp_put_SoRcvBuf(FHandle, AValue);
end;

function THttp.GetSoSndBuf: Integer;
begin
  Result := CkHttp_get_SoSndBuf(FHandle);
end;

procedure THttp.SetSoSndBuf(AValue: Integer);
begin
  CkHttp_put_SoSndBuf(FHandle, AValue);
end;

function THttp.GetSocksHostname: string;
begin
  Result := CkToStr(CkHttp_get_SocksHostname(FHandle));
end;

procedure THttp.SetSocksHostname(AValue: string);
begin
  CkHttp_put_SocksHostname(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetSocksPassword: string;
begin
  Result := CkToStr(CkHttp_get_SocksPassword(FHandle));
end;

procedure THttp.SetSocksPassword(AValue: string);
begin
  CkHttp_put_SocksPassword(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetSocksPort: Integer;
begin
  Result := CkHttp_get_SocksPort(FHandle);
end;

procedure THttp.SetSocksPort(AValue: Integer);
begin
  CkHttp_put_SocksPort(FHandle, AValue);
end;

function THttp.GetSocksUsername: string;
begin
  Result := CkToStr(CkHttp_get_SocksUsername(FHandle));
end;

procedure THttp.SetSocksUsername(AValue: string);
begin
  CkHttp_put_SocksUsername(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetSocksVersion: Integer;
begin
  Result := CkHttp_get_SocksVersion(FHandle);
end;

procedure THttp.SetSocksVersion(AValue: Integer);
begin
  CkHttp_put_SocksVersion(FHandle, AValue);
end;

function THttp.GetSslAllowedCiphers: string;
begin
  Result := CkToStr(CkHttp_get_SslAllowedCiphers(FHandle));
end;

procedure THttp.SetSslAllowedCiphers(AValue: string);
begin
  CkHttp_put_SslAllowedCiphers(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetSslProtocol: string;
begin
  Result := CkToStr(CkHttp_get_SslProtocol(FHandle));
end;

procedure THttp.SetSslProtocol(AValue: string);
begin
  CkHttp_put_SslProtocol(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetStreamResponseBodyPath: string;
begin
  Result := CkToStr(CkHttp_get_StreamResponseBodyPath(FHandle));
end;

procedure THttp.SetStreamResponseBodyPath(AValue: string);
begin
  CkHttp_put_StreamResponseBodyPath(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetTlsCipherSuite: string;
begin
  Result := CkToStr(CkHttp_get_TlsCipherSuite(FHandle));
end;

function THttp.GetTlsPinSet: string;
begin
  Result := CkToStr(CkHttp_get_TlsPinSet(FHandle));
end;

procedure THttp.SetTlsPinSet(AValue: string);
begin
  CkHttp_put_TlsPinSet(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetTlsVersion: string;
begin
  Result := CkToStr(CkHttp_get_TlsVersion(FHandle));
end;

function THttp.GetUpdateCache: Boolean;
begin
  Result := Boolean(CkHttp_get_UpdateCache(FHandle));
end;

procedure THttp.SetUpdateCache(AValue: Boolean);
begin
  CkHttp_put_UpdateCache(FHandle, LongBool(AValue));
end;

function THttp.GetUseIEProxy: Boolean;
begin
  Result := Boolean(CkHttp_get_UseIEProxy(FHandle));
end;

procedure THttp.SetUseIEProxy(AValue: Boolean);
begin
  CkHttp_put_UseIEProxy(FHandle, LongBool(AValue));
end;

function THttp.GetUserAgent: string;
begin
  Result := CkToStr(CkHttp_get_UserAgent(FHandle));
end;

procedure THttp.SetUserAgent(AValue: string);
begin
  CkHttp_put_UserAgent(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetWasRedirected: Boolean;
begin
  Result := Boolean(CkHttp_get_WasRedirected(FHandle));
end;

function THttp.GetAllowHeaderFolding: Boolean;
begin
  Result := Boolean(CkHttp_get_AllowHeaderFolding(FHandle));
end;

procedure THttp.SetAllowHeaderFolding(AValue: Boolean);
begin
  CkHttp_put_AllowHeaderFolding(FHandle, LongBool(AValue));
end;

function THttp.GetAuthToken: string;
begin
  Result := CkToStr(CkHttp_get_AuthToken(FHandle));
end;

procedure THttp.SetAuthToken(AValue: string);
begin
  CkHttp_put_AuthToken(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetLastStatusText: string;
begin
  Result := CkToStr(CkHttp_get_LastStatusText(FHandle));
end;

function THttp.GetUncommonOptions: string;
begin
  Result := CkToStr(CkHttp_get_UncommonOptions(FHandle));
end;

procedure THttp.SetUncommonOptions(AValue: string);
begin
  CkHttp_put_UncommonOptions(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetSniHostname: string;
begin
  Result := CkToStr(CkHttp_get_SniHostname(FHandle));
end;

procedure THttp.SetSniHostname(AValue: string);
begin
  CkHttp_put_SniHostname(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetProxyDirectTls: Boolean;
begin
  Result := Boolean(CkHttp_get_ProxyDirectTls(FHandle));
end;

procedure THttp.SetProxyDirectTls(AValue: Boolean);
begin
  CkHttp_put_ProxyDirectTls(FHandle, LongBool(AValue));
end;

function THttp.GetAuthSignature: string;
begin
  Result := CkToStr(CkHttp_get_AuthSignature(FHandle));
end;

procedure THttp.SetAuthSignature(AValue: string);
begin
  CkHttp_put_AuthSignature(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetOAuthBodyHash: Boolean;
begin
  Result := Boolean(CkHttp_get_OAuthBodyHash(FHandle));
end;

procedure THttp.SetOAuthBodyHash(AValue: Boolean);
begin
  CkHttp_put_OAuthBodyHash(FHandle, LongBool(AValue));
end;

function THttp.GetLastFromCache: Boolean;
begin
  Result := Boolean(CkHttp_get_LastFromCache(FHandle));
end;

function THttp.GetReceivedCertReq: Boolean;
begin
  Result := Boolean(CkHttp_get_ReceivedCertReq(FHandle));
end;

function THttp.GetAwsSessionToken: string;
begin
  Result := CkToStr(CkHttp_get_AwsSessionToken(FHandle));
end;

procedure THttp.SetAwsSessionToken(AValue: string);
begin
  CkHttp_put_AwsSessionToken(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function THttp.GetRequireHostnameMatch: Boolean;
begin
  Result := Boolean(CkHttp_get_RequireHostnameMatch(FHandle));
end;

procedure THttp.SetRequireHostnameMatch(AValue: Boolean);
begin
  CkHttp_put_RequireHostnameMatch(FHandle, LongBool(AValue));
end;

function THttp.GetEnableSecrets: Boolean;
begin
  Result := Boolean(CkHttp_get_EnableSecrets(FHandle));
end;

procedure THttp.SetEnableSecrets(AValue: Boolean);
begin
  CkHttp_put_EnableSecrets(FHandle, LongBool(AValue));
end;

procedure THttp.AddCacheRoot(const dir: string);
begin
  CkHttp_AddCacheRoot(FHandle, PAnsiChar(StrToCk(dir)));
end;

function THttp.CloseAllConnections: Boolean;
begin
  Result := Boolean(CkHttp_CloseAllConnections(FHandle));
end;

procedure THttp.DnsCacheClear;
begin
  CkHttp_DnsCacheClear(FHandle);
end;

function THttp.Download(const url: string; const localFilePath: string): Boolean;
begin
  Result := Boolean(CkHttp_Download(FHandle, PAnsiChar(StrToCk(url)), PAnsiChar(StrToCk(localFilePath))));
end;

function THttp.DownloadAppend(const url: string; const appendToPath: string): Boolean;
begin
  Result := Boolean(CkHttp_DownloadAppend(FHandle, PAnsiChar(StrToCk(url)), PAnsiChar(StrToCk(appendToPath))));
end;

function THttp.DownloadHash(const url: string; const hashAlgorithm: string; const encoding: string): string;
begin
  Result := CkToStr(CkHttp_DownloadHash(FHandle, PAnsiChar(StrToCk(url)), PAnsiChar(StrToCk(hashAlgorithm)), PAnsiChar(StrToCk(encoding))));
end;

function THttp.ExtractMetaRefreshUrl(const htmlContent: string): string;
begin
  Result := CkToStr(CkHttp_ExtractMetaRefreshUrl(FHandle, PAnsiChar(StrToCk(htmlContent))));
end;

function THttp.G_SvcOauthAccessToken(const iss: string; const scope: string; const subEmail: string; numSec: Integer; cert: TChilkatBase): string;
begin
  Result := CkToStr(CkHttp_G_SvcOauthAccessToken(FHandle, PAnsiChar(StrToCk(iss)), PAnsiChar(StrToCk(scope)), PAnsiChar(StrToCk(subEmail)), numSec, cert.Handle));
end;

function THttp.G_SvcOauthAccessToken2(claimParams: TChilkatBase; numSec: Integer; cert: TChilkatBase): string;
begin
  Result := CkToStr(CkHttp_G_SvcOauthAccessToken2(FHandle, claimParams.Handle, numSec, cert.Handle));
end;

function THttp.GenTimeStamp: string;
begin
  Result := CkToStr(CkHttp_GenTimeStamp(FHandle));
end;

function THttp.GetCacheRoot(index: Integer): string;
begin
  Result := CkToStr(CkHttp_GetCacheRoot(FHandle, index));
end;

function THttp.GetCookieXml(const domain: string): string;
begin
  Result := CkToStr(CkHttp_GetCookieXml(FHandle, PAnsiChar(StrToCk(domain))));
end;

function THttp.GetDomain(const url: string): string;
begin
  Result := CkToStr(CkHttp_GetDomain(FHandle, PAnsiChar(StrToCk(url))));
end;

function THttp.GetRequestHeader(const name: string): string;
begin
  Result := CkToStr(CkHttp_GetRequestHeader(FHandle, PAnsiChar(StrToCk(name))));
end;

function THttp.GetUrlPath(const url: string): string;
begin
  Result := CkToStr(CkHttp_GetUrlPath(FHandle, PAnsiChar(StrToCk(url))));
end;

function THttp.HasRequestHeader(const name: string): Boolean;
begin
  Result := Boolean(CkHttp_HasRequestHeader(FHandle, PAnsiChar(StrToCk(name))));
end;

function THttp.QuickDeleteStr(const url: string): string;
begin
  Result := CkToStr(CkHttp_QuickDeleteStr(FHandle, PAnsiChar(StrToCk(url))));
end;

function THttp.QuickGetStr(const url: string): string;
begin
  Result := CkToStr(CkHttp_QuickGetStr(FHandle, PAnsiChar(StrToCk(url))));
end;

procedure THttp.RemoveRequestHeader(const name: string);
begin
  CkHttp_RemoveRequestHeader(FHandle, PAnsiChar(StrToCk(name)));
end;

function THttp.RenderGet(const url: string): string;
begin
  Result := CkToStr(CkHttp_RenderGet(FHandle, PAnsiChar(StrToCk(url))));
end;

function THttp.ResumeDownload(const url: string; const targetFilename: string): Boolean;
begin
  Result := Boolean(CkHttp_ResumeDownload(FHandle, PAnsiChar(StrToCk(url)), PAnsiChar(StrToCk(targetFilename))));
end;

function THttp.S3_CreateBucket(const bucketPath: string): Boolean;
begin
  Result := Boolean(CkHttp_S3_CreateBucket(FHandle, PAnsiChar(StrToCk(bucketPath))));
end;

function THttp.S3_DeleteBucket(const bucketPath: string): Boolean;
begin
  Result := Boolean(CkHttp_S3_DeleteBucket(FHandle, PAnsiChar(StrToCk(bucketPath))));
end;

function THttp.S3_DeleteObject(const bucketPath: string; const objectName: string): Boolean;
begin
  Result := Boolean(CkHttp_S3_DeleteObject(FHandle, PAnsiChar(StrToCk(bucketPath)), PAnsiChar(StrToCk(objectName))));
end;

function THttp.S3_DownloadFile(const bucketPath: string; const objectName: string; const localFilePath: string): Boolean;
begin
  Result := Boolean(CkHttp_S3_DownloadFile(FHandle, PAnsiChar(StrToCk(bucketPath)), PAnsiChar(StrToCk(objectName)), PAnsiChar(StrToCk(localFilePath))));
end;

function THttp.S3_DownloadString(const bucketPath: string; const objectName: string; const charset: string): string;
begin
  Result := CkToStr(CkHttp_S3_DownloadString(FHandle, PAnsiChar(StrToCk(bucketPath)), PAnsiChar(StrToCk(objectName)), PAnsiChar(StrToCk(charset))));
end;

function THttp.S3_FileExists(const bucketPath: string; const objectName: string): Integer;
begin
  Result := CkHttp_S3_FileExists(FHandle, PAnsiChar(StrToCk(bucketPath)), PAnsiChar(StrToCk(objectName)));
end;

function THttp.S3_ListBucketObjects(const bucketPath: string): string;
begin
  Result := CkToStr(CkHttp_S3_ListBucketObjects(FHandle, PAnsiChar(StrToCk(bucketPath))));
end;

function THttp.S3_ListBuckets: string;
begin
  Result := CkToStr(CkHttp_S3_ListBuckets(FHandle));
end;

function THttp.S3_UploadFile(const localFilePath: string; const contentType: string; const bucketPath: string; const objectName: string): Boolean;
begin
  Result := Boolean(CkHttp_S3_UploadFile(FHandle, PAnsiChar(StrToCk(localFilePath)), PAnsiChar(StrToCk(contentType)), PAnsiChar(StrToCk(bucketPath)), PAnsiChar(StrToCk(objectName))));
end;

function THttp.S3_UploadString(const objectContent: string; const charset: string; const contentType: string; const bucketPath: string; const objectName: string): Boolean;
begin
  Result := Boolean(CkHttp_S3_UploadString(FHandle, PAnsiChar(StrToCk(objectContent)), PAnsiChar(StrToCk(charset)), PAnsiChar(StrToCk(contentType)), PAnsiChar(StrToCk(bucketPath)), PAnsiChar(StrToCk(objectName))));
end;

function THttp.SetCookieXml(const domain: string; const cookieXml: string): Boolean;
begin
  Result := Boolean(CkHttp_SetCookieXml(FHandle, PAnsiChar(StrToCk(domain)), PAnsiChar(StrToCk(cookieXml))));
end;

function THttp.SetOAuthRsaKey(privKey: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_SetOAuthRsaKey(FHandle, privKey.Handle));
end;

procedure THttp.SetRequestHeader(const headerFieldName: string; const headerFieldValue: string);
begin
  CkHttp_SetRequestHeader(FHandle, PAnsiChar(StrToCk(headerFieldName)), PAnsiChar(StrToCk(headerFieldValue)));
end;

function THttp.SetSslClientCert(cert: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_SetSslClientCert(FHandle, cert.Handle));
end;

function THttp.SetSslClientCertPem(const pemDataOrPath: string; const pemPassword: string): Boolean;
begin
  Result := Boolean(CkHttp_SetSslClientCertPem(FHandle, PAnsiChar(StrToCk(pemDataOrPath)), PAnsiChar(StrToCk(pemPassword))));
end;

function THttp.SetSslClientCertPfx(const pfxPath: string; const pfxPassword: string): Boolean;
begin
  Result := Boolean(CkHttp_SetSslClientCertPfx(FHandle, PAnsiChar(StrToCk(pfxPath)), PAnsiChar(StrToCk(pfxPassword))));
end;

procedure THttp.SleepMs(millisec: Integer);
begin
  CkHttp_SleepMs(FHandle, millisec);
end;

function THttp.UrlDecode(const str: string): string;
begin
  Result := CkToStr(CkHttp_UrlDecode(FHandle, PAnsiChar(StrToCk(str))));
end;

function THttp.UrlEncode(const str: string): string;
begin
  Result := CkToStr(CkHttp_UrlEncode(FHandle, PAnsiChar(StrToCk(str))));
end;

function THttp.DownloadBd(const url: string; binData: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_DownloadBd(FHandle, PAnsiChar(StrToCk(url)), binData.Handle));
end;

function THttp.DownloadSb(const url: string; const charset: string; sb: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_DownloadSb(FHandle, PAnsiChar(StrToCk(url)), PAnsiChar(StrToCk(charset)), sb.Handle));
end;

function THttp.QuickGetSb(const url: string; sbContent: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_QuickGetSb(FHandle, PAnsiChar(StrToCk(url)), sbContent.Handle));
end;

function THttp.QuickGetBd(const url: string; binData: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_QuickGetBd(FHandle, PAnsiChar(StrToCk(url)), binData.Handle));
end;

function THttp.SetUrlVar(const name: string; const value: string): Boolean;
begin
  Result := Boolean(CkHttp_SetUrlVar(FHandle, PAnsiChar(StrToCk(name)), PAnsiChar(StrToCk(value))));
end;

procedure THttp.ClearUrlVars;
begin
  CkHttp_ClearUrlVars(FHandle);
end;

function THttp.SharePointOnlineAuth(const siteUrl: string; const username: string; password: TChilkatBase; extraInfo: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_SharePointOnlineAuth(FHandle, PAnsiChar(StrToCk(siteUrl)), PAnsiChar(StrToCk(username)), password.Handle, extraInfo.Handle));
end;

function THttp.ResumeDownloadBd(const url: string; binData: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_ResumeDownloadBd(FHandle, PAnsiChar(StrToCk(url)), binData.Handle));
end;

function THttp.CreateTimestampRequest(const hashAlg: string; const hashVal: string; const reqPolicyOid: string; addNonce: Boolean; reqTsaCert: Boolean; timestampToken: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_CreateTimestampRequest(FHandle, PAnsiChar(StrToCk(hashAlg)), PAnsiChar(StrToCk(hashVal)), PAnsiChar(StrToCk(reqPolicyOid)), LongBool(addNonce), LongBool(reqTsaCert), timestampToken.Handle));
end;

function THttp.VerifyTimestampReply(timestampReply: TChilkatBase; tsaCert: TChilkatBase): Integer;
begin
  Result := CkHttp_VerifyTimestampReply(FHandle, timestampReply.Handle, tsaCert.Handle);
end;

function THttp.CreateOcspRequest(requestDetails: TChilkatBase; ocspRequest: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_CreateOcspRequest(FHandle, requestDetails.Handle, ocspRequest.Handle));
end;

function THttp.ParseOcspReply(ocspReply: TChilkatBase; replyData: TChilkatBase): Integer;
begin
  Result := CkHttp_ParseOcspReply(FHandle, ocspReply.Handle, replyData.Handle);
end;

function THttp.SetSecurePassword(password: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_SetSecurePassword(FHandle, password.Handle));
end;

function THttp.S3_UploadBd(bd: TChilkatBase; const contentType: string; const bucketPath: string; const objectName: string): Boolean;
begin
  Result := Boolean(CkHttp_S3_UploadBd(FHandle, bd.Handle, PAnsiChar(StrToCk(contentType)), PAnsiChar(StrToCk(bucketPath)), PAnsiChar(StrToCk(objectName))));
end;

function THttp.S3_DownloadBd(const bucketPath: string; const objectName: string; bd: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_S3_DownloadBd(FHandle, PAnsiChar(StrToCk(bucketPath)), PAnsiChar(StrToCk(objectName)), bd.Handle));
end;

procedure THttp.ClearHeaders;
begin
  CkHttp_ClearHeaders(FHandle);
end;

function THttp.S3_GenPresignedUrl(const httpVerb: string; useHttps: Boolean; const bucketName: string; const path: string; numSecondsValid: Integer; const awsService: string): string;
begin
  Result := CkToStr(CkHttp_S3_GenPresignedUrl(FHandle, PAnsiChar(StrToCk(httpVerb)), LongBool(useHttps), PAnsiChar(StrToCk(bucketName)), PAnsiChar(StrToCk(path)), numSecondsValid, PAnsiChar(StrToCk(awsService))));
end;

procedure THttp.SetSslCertRequirement(const reqName: string; const reqValue: string);
begin
  CkHttp_SetSslCertRequirement(FHandle, PAnsiChar(StrToCk(reqName)), PAnsiChar(StrToCk(reqValue)));
end;

function THttp.OcspCheck(const domain: string; port: Integer): Integer;
begin
  Result := CkHttp_OcspCheck(FHandle, PAnsiChar(StrToCk(domain)), port);
end;

function THttp.SetAuthPrivateKey(const publicKeyId: string; privKey: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_SetAuthPrivateKey(FHandle, PAnsiChar(StrToCk(publicKeyId)), privKey.Handle));
end;

function THttp.SetAuthTokenSb(sb: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_SetAuthTokenSb(FHandle, sb.Handle));
end;

procedure THttp.GetLastJsonData(json: TChilkatBase);
begin
  CkHttp_GetLastJsonData(FHandle, json.Handle);
end;

function THttp.GetServerCert(const domain: string; port: Integer; cert: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_GetServerCert(FHandle, PAnsiChar(StrToCk(domain)), port, cert.Handle));
end;

function THttp.HttpBd(const verb: string; const url: string; bd: TChilkatBase; const contentType: string; response: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_HttpBd(FHandle, PAnsiChar(StrToCk(verb)), PAnsiChar(StrToCk(url)), bd.Handle, PAnsiChar(StrToCk(contentType)), response.Handle));
end;

function THttp.HttpNoBody(const verb: string; const url: string; response: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_HttpNoBody(FHandle, PAnsiChar(StrToCk(verb)), PAnsiChar(StrToCk(url)), response.Handle));
end;

function THttp.HttpStr(const verb: string; const url: string; const bodyStr: string; const charset: string; const contentType: string; response: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_HttpStr(FHandle, PAnsiChar(StrToCk(verb)), PAnsiChar(StrToCk(url)), PAnsiChar(StrToCk(bodyStr)), PAnsiChar(StrToCk(charset)), PAnsiChar(StrToCk(contentType)), response.Handle));
end;

function THttp.HttpSb(const verb: string; const url: string; sb: TChilkatBase; const charset: string; const contentType: string; response: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_HttpSb(FHandle, PAnsiChar(StrToCk(verb)), PAnsiChar(StrToCk(url)), sb.Handle, PAnsiChar(StrToCk(charset)), PAnsiChar(StrToCk(contentType)), response.Handle));
end;

function THttp.HttpJson(const verb: string; const url: string; json: TChilkatBase; const contentType: string; response: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_HttpJson(FHandle, PAnsiChar(StrToCk(verb)), PAnsiChar(StrToCk(url)), json.Handle, PAnsiChar(StrToCk(contentType)), response.Handle));
end;

function THttp.HttpReq(const url: string; request: TChilkatBase; response: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_HttpReq(FHandle, PAnsiChar(StrToCk(url)), request.Handle, response.Handle));
end;

function THttp.HttpFile(const verb: string; const url: string; const localFilePath: string; const contentType: string; response: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_HttpFile(FHandle, PAnsiChar(StrToCk(verb)), PAnsiChar(StrToCk(url)), PAnsiChar(StrToCk(localFilePath)), PAnsiChar(StrToCk(contentType)), response.Handle));
end;

function THttp.HttpParams(const verb: string; const url: string; json: TChilkatBase; response: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_HttpParams(FHandle, PAnsiChar(StrToCk(verb)), PAnsiChar(StrToCk(url)), json.Handle, response.Handle));
end;

function THttp.HttpSReq(const domain: string; port: Integer; ssl: Boolean; request: TChilkatBase; response: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_HttpSReq(FHandle, PAnsiChar(StrToCk(domain)), port, LongBool(ssl), request.Handle, response.Handle));
end;

function THttp.S3_DeleteObjects(const bucketName: string; objectNames: TChilkatBase; jsonResponse: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_S3_DeleteObjects(FHandle, PAnsiChar(StrToCk(bucketName)), objectNames.Handle, jsonResponse.Handle));
end;

procedure THttp.ClearInMemoryCookies;
begin
  CkHttp_ClearInMemoryCookies(FHandle);
end;

function THttp.SetDPoPKey(privKey: TChilkatBase): Boolean;
begin
  Result := Boolean(CkHttp_SetDPoPKey(FHandle, privKey.Handle));
end;

initialization
  Chilkat_GetProcedureAddress(CkHttp_Create,  'CkHttp_Create');
  Chilkat_GetProcedureAddress(CkHttp_Dispose, 'CkHttp_Dispose');
  Chilkat_GetProcedureAddress(CkHttp_SetAbortCheckCallback, 'CkHttp_SetAbortCheckCallback');
  Chilkat_GetProcedureAddress(CkHttp_SetPercentDoneCallback, 'CkHttp_SetPercentDoneCallback');
  Chilkat_GetProcedureAddress(CkHttp_SetProgressInfoCallback, 'CkHttp_SetProgressInfoCallback');
  Chilkat_GetProcedureAddress(CkHttp_get_LastErrorHtml, 'CkHttp_get_LastErrorHtml');
  Chilkat_GetProcedureAddress(CkHttp_get_LastErrorText, 'CkHttp_get_LastErrorText');
  Chilkat_GetProcedureAddress(CkHttp_get_LastErrorXml, 'CkHttp_get_LastErrorXml');
  Chilkat_GetProcedureAddress(CkHttp_get_Version, 'CkHttp_get_Version');
  Chilkat_GetProcedureAddress(CkHttp_get_DebugLogFilePath, 'CkHttp_get_DebugLogFilePath');
  Chilkat_GetProcedureAddress(CkHttp_put_DebugLogFilePath, 'CkHttp_put_DebugLogFilePath');
  Chilkat_GetProcedureAddress(CkHttp_get_VerboseLogging, 'CkHttp_get_VerboseLogging');
  Chilkat_GetProcedureAddress(CkHttp_put_VerboseLogging, 'CkHttp_put_VerboseLogging');
  Chilkat_GetProcedureAddress(CkHttp_get_LastMethodSuccess, 'CkHttp_get_LastMethodSuccess');
  Chilkat_GetProcedureAddress(CkHttp_put_LastMethodSuccess, 'CkHttp_put_LastMethodSuccess');
  Chilkat_GetProcedureAddress(CkHttp_get_AbortCurrent, 'CkHttp_get_AbortCurrent');
  Chilkat_GetProcedureAddress(CkHttp_put_AbortCurrent, 'CkHttp_put_AbortCurrent');
  Chilkat_GetProcedureAddress(CkHttp_get_Accept, 'CkHttp_get_Accept');
  Chilkat_GetProcedureAddress(CkHttp_put_Accept, 'CkHttp_put_Accept');
  Chilkat_GetProcedureAddress(CkHttp_get_AllowGzip, 'CkHttp_get_AllowGzip');
  Chilkat_GetProcedureAddress(CkHttp_put_AllowGzip, 'CkHttp_put_AllowGzip');
  Chilkat_GetProcedureAddress(CkHttp_get_AutoAddHostHeader, 'CkHttp_get_AutoAddHostHeader');
  Chilkat_GetProcedureAddress(CkHttp_put_AutoAddHostHeader, 'CkHttp_put_AutoAddHostHeader');
  Chilkat_GetProcedureAddress(CkHttp_get_AwsAccessKey, 'CkHttp_get_AwsAccessKey');
  Chilkat_GetProcedureAddress(CkHttp_put_AwsAccessKey, 'CkHttp_put_AwsAccessKey');
  Chilkat_GetProcedureAddress(CkHttp_get_AwsEndpoint, 'CkHttp_get_AwsEndpoint');
  Chilkat_GetProcedureAddress(CkHttp_put_AwsEndpoint, 'CkHttp_put_AwsEndpoint');
  Chilkat_GetProcedureAddress(CkHttp_get_AwsRegion, 'CkHttp_get_AwsRegion');
  Chilkat_GetProcedureAddress(CkHttp_put_AwsRegion, 'CkHttp_put_AwsRegion');
  Chilkat_GetProcedureAddress(CkHttp_get_AwsSecretKey, 'CkHttp_get_AwsSecretKey');
  Chilkat_GetProcedureAddress(CkHttp_put_AwsSecretKey, 'CkHttp_put_AwsSecretKey');
  Chilkat_GetProcedureAddress(CkHttp_get_AwsSubResources, 'CkHttp_get_AwsSubResources');
  Chilkat_GetProcedureAddress(CkHttp_put_AwsSubResources, 'CkHttp_put_AwsSubResources');
  Chilkat_GetProcedureAddress(CkHttp_get_BandwidthThrottleDown, 'CkHttp_get_BandwidthThrottleDown');
  Chilkat_GetProcedureAddress(CkHttp_put_BandwidthThrottleDown, 'CkHttp_put_BandwidthThrottleDown');
  Chilkat_GetProcedureAddress(CkHttp_get_BandwidthThrottleUp, 'CkHttp_get_BandwidthThrottleUp');
  Chilkat_GetProcedureAddress(CkHttp_put_BandwidthThrottleUp, 'CkHttp_put_BandwidthThrottleUp');
  Chilkat_GetProcedureAddress(CkHttp_get_BasicAuth, 'CkHttp_get_BasicAuth');
  Chilkat_GetProcedureAddress(CkHttp_put_BasicAuth, 'CkHttp_put_BasicAuth');
  Chilkat_GetProcedureAddress(CkHttp_get_ClientIpAddress, 'CkHttp_get_ClientIpAddress');
  Chilkat_GetProcedureAddress(CkHttp_put_ClientIpAddress, 'CkHttp_put_ClientIpAddress');
  Chilkat_GetProcedureAddress(CkHttp_get_ConnectFailReason, 'CkHttp_get_ConnectFailReason');
  Chilkat_GetProcedureAddress(CkHttp_get_ConnectTimeout, 'CkHttp_get_ConnectTimeout');
  Chilkat_GetProcedureAddress(CkHttp_put_ConnectTimeout, 'CkHttp_put_ConnectTimeout');
  Chilkat_GetProcedureAddress(CkHttp_get_CookieDir, 'CkHttp_get_CookieDir');
  Chilkat_GetProcedureAddress(CkHttp_put_CookieDir, 'CkHttp_put_CookieDir');
  Chilkat_GetProcedureAddress(CkHttp_get_DefaultFreshPeriod, 'CkHttp_get_DefaultFreshPeriod');
  Chilkat_GetProcedureAddress(CkHttp_put_DefaultFreshPeriod, 'CkHttp_put_DefaultFreshPeriod');
  Chilkat_GetProcedureAddress(CkHttp_get_DigestAuth, 'CkHttp_get_DigestAuth');
  Chilkat_GetProcedureAddress(CkHttp_put_DigestAuth, 'CkHttp_put_DigestAuth');
  Chilkat_GetProcedureAddress(CkHttp_get_FetchFromCache, 'CkHttp_get_FetchFromCache');
  Chilkat_GetProcedureAddress(CkHttp_put_FetchFromCache, 'CkHttp_put_FetchFromCache');
  Chilkat_GetProcedureAddress(CkHttp_get_FinalRedirectUrl, 'CkHttp_get_FinalRedirectUrl');
  Chilkat_GetProcedureAddress(CkHttp_get_FollowRedirects, 'CkHttp_get_FollowRedirects');
  Chilkat_GetProcedureAddress(CkHttp_put_FollowRedirects, 'CkHttp_put_FollowRedirects');
  Chilkat_GetProcedureAddress(CkHttp_get_FreshnessAlgorithm, 'CkHttp_get_FreshnessAlgorithm');
  Chilkat_GetProcedureAddress(CkHttp_put_FreshnessAlgorithm, 'CkHttp_put_FreshnessAlgorithm');
  Chilkat_GetProcedureAddress(CkHttp_get_HeartbeatMs, 'CkHttp_get_HeartbeatMs');
  Chilkat_GetProcedureAddress(CkHttp_put_HeartbeatMs, 'CkHttp_put_HeartbeatMs');
  Chilkat_GetProcedureAddress(CkHttp_get_IgnoreMustRevalidate, 'CkHttp_get_IgnoreMustRevalidate');
  Chilkat_GetProcedureAddress(CkHttp_put_IgnoreMustRevalidate, 'CkHttp_put_IgnoreMustRevalidate');
  Chilkat_GetProcedureAddress(CkHttp_get_IgnoreNoCache, 'CkHttp_get_IgnoreNoCache');
  Chilkat_GetProcedureAddress(CkHttp_put_IgnoreNoCache, 'CkHttp_put_IgnoreNoCache');
  Chilkat_GetProcedureAddress(CkHttp_get_KeepResponseBody, 'CkHttp_get_KeepResponseBody');
  Chilkat_GetProcedureAddress(CkHttp_put_KeepResponseBody, 'CkHttp_put_KeepResponseBody');
  Chilkat_GetProcedureAddress(CkHttp_get_LMFactor, 'CkHttp_get_LMFactor');
  Chilkat_GetProcedureAddress(CkHttp_put_LMFactor, 'CkHttp_put_LMFactor');
  Chilkat_GetProcedureAddress(CkHttp_get_LastContentType, 'CkHttp_get_LastContentType');
  Chilkat_GetProcedureAddress(CkHttp_get_LastHeader, 'CkHttp_get_LastHeader');
  Chilkat_GetProcedureAddress(CkHttp_get_LastModDate, 'CkHttp_get_LastModDate');
  Chilkat_GetProcedureAddress(CkHttp_get_LastResponseBody, 'CkHttp_get_LastResponseBody');
  Chilkat_GetProcedureAddress(CkHttp_get_LastResponseHeader, 'CkHttp_get_LastResponseHeader');
  Chilkat_GetProcedureAddress(CkHttp_get_LastStatus, 'CkHttp_get_LastStatus');
  Chilkat_GetProcedureAddress(CkHttp_get_Login, 'CkHttp_get_Login');
  Chilkat_GetProcedureAddress(CkHttp_put_Login, 'CkHttp_put_Login');
  Chilkat_GetProcedureAddress(CkHttp_get_LoginDomain, 'CkHttp_get_LoginDomain');
  Chilkat_GetProcedureAddress(CkHttp_put_LoginDomain, 'CkHttp_put_LoginDomain');
  Chilkat_GetProcedureAddress(CkHttp_get_MaxConnections, 'CkHttp_get_MaxConnections');
  Chilkat_GetProcedureAddress(CkHttp_put_MaxConnections, 'CkHttp_put_MaxConnections');
  Chilkat_GetProcedureAddress(CkHttp_get_MaxFreshPeriod, 'CkHttp_get_MaxFreshPeriod');
  Chilkat_GetProcedureAddress(CkHttp_put_MaxFreshPeriod, 'CkHttp_put_MaxFreshPeriod');
  Chilkat_GetProcedureAddress(CkHttp_get_MaxResponseSize, 'CkHttp_get_MaxResponseSize');
  Chilkat_GetProcedureAddress(CkHttp_put_MaxResponseSize, 'CkHttp_put_MaxResponseSize');
  Chilkat_GetProcedureAddress(CkHttp_get_MaxUrlLen, 'CkHttp_get_MaxUrlLen');
  Chilkat_GetProcedureAddress(CkHttp_put_MaxUrlLen, 'CkHttp_put_MaxUrlLen');
  Chilkat_GetProcedureAddress(CkHttp_get_MinFreshPeriod, 'CkHttp_get_MinFreshPeriod');
  Chilkat_GetProcedureAddress(CkHttp_put_MinFreshPeriod, 'CkHttp_put_MinFreshPeriod');
  Chilkat_GetProcedureAddress(CkHttp_get_NegotiateAuth, 'CkHttp_get_NegotiateAuth');
  Chilkat_GetProcedureAddress(CkHttp_put_NegotiateAuth, 'CkHttp_put_NegotiateAuth');
  Chilkat_GetProcedureAddress(CkHttp_get_NtlmAuth, 'CkHttp_get_NtlmAuth');
  Chilkat_GetProcedureAddress(CkHttp_put_NtlmAuth, 'CkHttp_put_NtlmAuth');
  Chilkat_GetProcedureAddress(CkHttp_get_NumCacheLevels, 'CkHttp_get_NumCacheLevels');
  Chilkat_GetProcedureAddress(CkHttp_put_NumCacheLevels, 'CkHttp_put_NumCacheLevels');
  Chilkat_GetProcedureAddress(CkHttp_get_NumCacheRoots, 'CkHttp_get_NumCacheRoots');
  Chilkat_GetProcedureAddress(CkHttp_get_OAuth1, 'CkHttp_get_OAuth1');
  Chilkat_GetProcedureAddress(CkHttp_put_OAuth1, 'CkHttp_put_OAuth1');
  Chilkat_GetProcedureAddress(CkHttp_get_OAuthCallback, 'CkHttp_get_OAuthCallback');
  Chilkat_GetProcedureAddress(CkHttp_put_OAuthCallback, 'CkHttp_put_OAuthCallback');
  Chilkat_GetProcedureAddress(CkHttp_get_OAuthConsumerKey, 'CkHttp_get_OAuthConsumerKey');
  Chilkat_GetProcedureAddress(CkHttp_put_OAuthConsumerKey, 'CkHttp_put_OAuthConsumerKey');
  Chilkat_GetProcedureAddress(CkHttp_get_OAuthConsumerSecret, 'CkHttp_get_OAuthConsumerSecret');
  Chilkat_GetProcedureAddress(CkHttp_put_OAuthConsumerSecret, 'CkHttp_put_OAuthConsumerSecret');
  Chilkat_GetProcedureAddress(CkHttp_get_OAuthRealm, 'CkHttp_get_OAuthRealm');
  Chilkat_GetProcedureAddress(CkHttp_put_OAuthRealm, 'CkHttp_put_OAuthRealm');
  Chilkat_GetProcedureAddress(CkHttp_get_OAuthSigMethod, 'CkHttp_get_OAuthSigMethod');
  Chilkat_GetProcedureAddress(CkHttp_put_OAuthSigMethod, 'CkHttp_put_OAuthSigMethod');
  Chilkat_GetProcedureAddress(CkHttp_get_OAuthToken, 'CkHttp_get_OAuthToken');
  Chilkat_GetProcedureAddress(CkHttp_put_OAuthToken, 'CkHttp_put_OAuthToken');
  Chilkat_GetProcedureAddress(CkHttp_get_OAuthTokenSecret, 'CkHttp_get_OAuthTokenSecret');
  Chilkat_GetProcedureAddress(CkHttp_put_OAuthTokenSecret, 'CkHttp_put_OAuthTokenSecret');
  Chilkat_GetProcedureAddress(CkHttp_get_OAuthVerifier, 'CkHttp_get_OAuthVerifier');
  Chilkat_GetProcedureAddress(CkHttp_put_OAuthVerifier, 'CkHttp_put_OAuthVerifier');
  Chilkat_GetProcedureAddress(CkHttp_get_Password, 'CkHttp_get_Password');
  Chilkat_GetProcedureAddress(CkHttp_put_Password, 'CkHttp_put_Password');
  Chilkat_GetProcedureAddress(CkHttp_get_PercentDoneScale, 'CkHttp_get_PercentDoneScale');
  Chilkat_GetProcedureAddress(CkHttp_put_PercentDoneScale, 'CkHttp_put_PercentDoneScale');
  Chilkat_GetProcedureAddress(CkHttp_get_PreferIpv6, 'CkHttp_get_PreferIpv6');
  Chilkat_GetProcedureAddress(CkHttp_put_PreferIpv6, 'CkHttp_put_PreferIpv6');
  Chilkat_GetProcedureAddress(CkHttp_get_ProxyAuthMethod, 'CkHttp_get_ProxyAuthMethod');
  Chilkat_GetProcedureAddress(CkHttp_put_ProxyAuthMethod, 'CkHttp_put_ProxyAuthMethod');
  Chilkat_GetProcedureAddress(CkHttp_get_ProxyDomain, 'CkHttp_get_ProxyDomain');
  Chilkat_GetProcedureAddress(CkHttp_put_ProxyDomain, 'CkHttp_put_ProxyDomain');
  Chilkat_GetProcedureAddress(CkHttp_get_ProxyLogin, 'CkHttp_get_ProxyLogin');
  Chilkat_GetProcedureAddress(CkHttp_put_ProxyLogin, 'CkHttp_put_ProxyLogin');
  Chilkat_GetProcedureAddress(CkHttp_get_ProxyLoginDomain, 'CkHttp_get_ProxyLoginDomain');
  Chilkat_GetProcedureAddress(CkHttp_put_ProxyLoginDomain, 'CkHttp_put_ProxyLoginDomain');
  Chilkat_GetProcedureAddress(CkHttp_get_ProxyPassword, 'CkHttp_get_ProxyPassword');
  Chilkat_GetProcedureAddress(CkHttp_put_ProxyPassword, 'CkHttp_put_ProxyPassword');
  Chilkat_GetProcedureAddress(CkHttp_get_ProxyPort, 'CkHttp_get_ProxyPort');
  Chilkat_GetProcedureAddress(CkHttp_put_ProxyPort, 'CkHttp_put_ProxyPort');
  Chilkat_GetProcedureAddress(CkHttp_get_ReadTimeout, 'CkHttp_get_ReadTimeout');
  Chilkat_GetProcedureAddress(CkHttp_put_ReadTimeout, 'CkHttp_put_ReadTimeout');
  Chilkat_GetProcedureAddress(CkHttp_get_RedirectVerb, 'CkHttp_get_RedirectVerb');
  Chilkat_GetProcedureAddress(CkHttp_put_RedirectVerb, 'CkHttp_put_RedirectVerb');
  Chilkat_GetProcedureAddress(CkHttp_get_RequireSslCertVerify, 'CkHttp_get_RequireSslCertVerify');
  Chilkat_GetProcedureAddress(CkHttp_put_RequireSslCertVerify, 'CkHttp_put_RequireSslCertVerify');
  Chilkat_GetProcedureAddress(CkHttp_get_RequiredContentType, 'CkHttp_get_RequiredContentType');
  Chilkat_GetProcedureAddress(CkHttp_put_RequiredContentType, 'CkHttp_put_RequiredContentType');
  Chilkat_GetProcedureAddress(CkHttp_get_SaveCookies, 'CkHttp_get_SaveCookies');
  Chilkat_GetProcedureAddress(CkHttp_put_SaveCookies, 'CkHttp_put_SaveCookies');
  Chilkat_GetProcedureAddress(CkHttp_get_SendBufferSize, 'CkHttp_get_SendBufferSize');
  Chilkat_GetProcedureAddress(CkHttp_put_SendBufferSize, 'CkHttp_put_SendBufferSize');
  Chilkat_GetProcedureAddress(CkHttp_get_SendCookies, 'CkHttp_get_SendCookies');
  Chilkat_GetProcedureAddress(CkHttp_put_SendCookies, 'CkHttp_put_SendCookies');
  Chilkat_GetProcedureAddress(CkHttp_get_SessionLogFilename, 'CkHttp_get_SessionLogFilename');
  Chilkat_GetProcedureAddress(CkHttp_put_SessionLogFilename, 'CkHttp_put_SessionLogFilename');
  Chilkat_GetProcedureAddress(CkHttp_get_SoRcvBuf, 'CkHttp_get_SoRcvBuf');
  Chilkat_GetProcedureAddress(CkHttp_put_SoRcvBuf, 'CkHttp_put_SoRcvBuf');
  Chilkat_GetProcedureAddress(CkHttp_get_SoSndBuf, 'CkHttp_get_SoSndBuf');
  Chilkat_GetProcedureAddress(CkHttp_put_SoSndBuf, 'CkHttp_put_SoSndBuf');
  Chilkat_GetProcedureAddress(CkHttp_get_SocksHostname, 'CkHttp_get_SocksHostname');
  Chilkat_GetProcedureAddress(CkHttp_put_SocksHostname, 'CkHttp_put_SocksHostname');
  Chilkat_GetProcedureAddress(CkHttp_get_SocksPassword, 'CkHttp_get_SocksPassword');
  Chilkat_GetProcedureAddress(CkHttp_put_SocksPassword, 'CkHttp_put_SocksPassword');
  Chilkat_GetProcedureAddress(CkHttp_get_SocksPort, 'CkHttp_get_SocksPort');
  Chilkat_GetProcedureAddress(CkHttp_put_SocksPort, 'CkHttp_put_SocksPort');
  Chilkat_GetProcedureAddress(CkHttp_get_SocksUsername, 'CkHttp_get_SocksUsername');
  Chilkat_GetProcedureAddress(CkHttp_put_SocksUsername, 'CkHttp_put_SocksUsername');
  Chilkat_GetProcedureAddress(CkHttp_get_SocksVersion, 'CkHttp_get_SocksVersion');
  Chilkat_GetProcedureAddress(CkHttp_put_SocksVersion, 'CkHttp_put_SocksVersion');
  Chilkat_GetProcedureAddress(CkHttp_get_SslAllowedCiphers, 'CkHttp_get_SslAllowedCiphers');
  Chilkat_GetProcedureAddress(CkHttp_put_SslAllowedCiphers, 'CkHttp_put_SslAllowedCiphers');
  Chilkat_GetProcedureAddress(CkHttp_get_SslProtocol, 'CkHttp_get_SslProtocol');
  Chilkat_GetProcedureAddress(CkHttp_put_SslProtocol, 'CkHttp_put_SslProtocol');
  Chilkat_GetProcedureAddress(CkHttp_get_StreamResponseBodyPath, 'CkHttp_get_StreamResponseBodyPath');
  Chilkat_GetProcedureAddress(CkHttp_put_StreamResponseBodyPath, 'CkHttp_put_StreamResponseBodyPath');
  Chilkat_GetProcedureAddress(CkHttp_get_TlsCipherSuite, 'CkHttp_get_TlsCipherSuite');
  Chilkat_GetProcedureAddress(CkHttp_get_TlsPinSet, 'CkHttp_get_TlsPinSet');
  Chilkat_GetProcedureAddress(CkHttp_put_TlsPinSet, 'CkHttp_put_TlsPinSet');
  Chilkat_GetProcedureAddress(CkHttp_get_TlsVersion, 'CkHttp_get_TlsVersion');
  Chilkat_GetProcedureAddress(CkHttp_get_UpdateCache, 'CkHttp_get_UpdateCache');
  Chilkat_GetProcedureAddress(CkHttp_put_UpdateCache, 'CkHttp_put_UpdateCache');
  Chilkat_GetProcedureAddress(CkHttp_get_UseIEProxy, 'CkHttp_get_UseIEProxy');
  Chilkat_GetProcedureAddress(CkHttp_put_UseIEProxy, 'CkHttp_put_UseIEProxy');
  Chilkat_GetProcedureAddress(CkHttp_get_UserAgent, 'CkHttp_get_UserAgent');
  Chilkat_GetProcedureAddress(CkHttp_put_UserAgent, 'CkHttp_put_UserAgent');
  Chilkat_GetProcedureAddress(CkHttp_get_WasRedirected, 'CkHttp_get_WasRedirected');
  Chilkat_GetProcedureAddress(CkHttp_get_AllowHeaderFolding, 'CkHttp_get_AllowHeaderFolding');
  Chilkat_GetProcedureAddress(CkHttp_put_AllowHeaderFolding, 'CkHttp_put_AllowHeaderFolding');
  Chilkat_GetProcedureAddress(CkHttp_get_AuthToken, 'CkHttp_get_AuthToken');
  Chilkat_GetProcedureAddress(CkHttp_put_AuthToken, 'CkHttp_put_AuthToken');
  Chilkat_GetProcedureAddress(CkHttp_get_LastStatusText, 'CkHttp_get_LastStatusText');
  Chilkat_GetProcedureAddress(CkHttp_get_UncommonOptions, 'CkHttp_get_UncommonOptions');
  Chilkat_GetProcedureAddress(CkHttp_put_UncommonOptions, 'CkHttp_put_UncommonOptions');
  Chilkat_GetProcedureAddress(CkHttp_get_SniHostname, 'CkHttp_get_SniHostname');
  Chilkat_GetProcedureAddress(CkHttp_put_SniHostname, 'CkHttp_put_SniHostname');
  Chilkat_GetProcedureAddress(CkHttp_get_ProxyDirectTls, 'CkHttp_get_ProxyDirectTls');
  Chilkat_GetProcedureAddress(CkHttp_put_ProxyDirectTls, 'CkHttp_put_ProxyDirectTls');
  Chilkat_GetProcedureAddress(CkHttp_get_AuthSignature, 'CkHttp_get_AuthSignature');
  Chilkat_GetProcedureAddress(CkHttp_put_AuthSignature, 'CkHttp_put_AuthSignature');
  Chilkat_GetProcedureAddress(CkHttp_get_OAuthBodyHash, 'CkHttp_get_OAuthBodyHash');
  Chilkat_GetProcedureAddress(CkHttp_put_OAuthBodyHash, 'CkHttp_put_OAuthBodyHash');
  Chilkat_GetProcedureAddress(CkHttp_get_LastFromCache, 'CkHttp_get_LastFromCache');
  Chilkat_GetProcedureAddress(CkHttp_get_ReceivedCertReq, 'CkHttp_get_ReceivedCertReq');
  Chilkat_GetProcedureAddress(CkHttp_get_AwsSessionToken, 'CkHttp_get_AwsSessionToken');
  Chilkat_GetProcedureAddress(CkHttp_put_AwsSessionToken, 'CkHttp_put_AwsSessionToken');
  Chilkat_GetProcedureAddress(CkHttp_get_RequireHostnameMatch, 'CkHttp_get_RequireHostnameMatch');
  Chilkat_GetProcedureAddress(CkHttp_put_RequireHostnameMatch, 'CkHttp_put_RequireHostnameMatch');
  Chilkat_GetProcedureAddress(CkHttp_get_EnableSecrets, 'CkHttp_get_EnableSecrets');
  Chilkat_GetProcedureAddress(CkHttp_put_EnableSecrets, 'CkHttp_put_EnableSecrets');
  Chilkat_GetProcedureAddress(CkHttp_AddCacheRoot, 'CkHttp_AddCacheRoot');
  Chilkat_GetProcedureAddress(CkHttp_CloseAllConnections, 'CkHttp_CloseAllConnections');
  Chilkat_GetProcedureAddress(CkHttp_DnsCacheClear, 'CkHttp_DnsCacheClear');
  Chilkat_GetProcedureAddress(CkHttp_Download, 'CkHttp_Download');
  Chilkat_GetProcedureAddress(CkHttp_DownloadAppend, 'CkHttp_DownloadAppend');
  Chilkat_GetProcedureAddress(CkHttp_DownloadHash, 'CkHttp_DownloadHash');
  Chilkat_GetProcedureAddress(CkHttp_ExtractMetaRefreshUrl, 'CkHttp_ExtractMetaRefreshUrl');
  Chilkat_GetProcedureAddress(CkHttp_G_SvcOauthAccessToken, 'CkHttp_G_SvcOauthAccessToken');
  Chilkat_GetProcedureAddress(CkHttp_G_SvcOauthAccessToken2, 'CkHttp_G_SvcOauthAccessToken2');
  Chilkat_GetProcedureAddress(CkHttp_GenTimeStamp, 'CkHttp_GenTimeStamp');
  Chilkat_GetProcedureAddress(CkHttp_GetCacheRoot, 'CkHttp_GetCacheRoot');
  Chilkat_GetProcedureAddress(CkHttp_GetCookieXml, 'CkHttp_GetCookieXml');
  Chilkat_GetProcedureAddress(CkHttp_GetDomain, 'CkHttp_GetDomain');
  Chilkat_GetProcedureAddress(CkHttp_GetRequestHeader, 'CkHttp_GetRequestHeader');
  Chilkat_GetProcedureAddress(CkHttp_GetUrlPath, 'CkHttp_GetUrlPath');
  Chilkat_GetProcedureAddress(CkHttp_HasRequestHeader, 'CkHttp_HasRequestHeader');
  Chilkat_GetProcedureAddress(CkHttp_QuickDeleteStr, 'CkHttp_QuickDeleteStr');
  Chilkat_GetProcedureAddress(CkHttp_QuickGetStr, 'CkHttp_QuickGetStr');
  Chilkat_GetProcedureAddress(CkHttp_RemoveRequestHeader, 'CkHttp_RemoveRequestHeader');
  Chilkat_GetProcedureAddress(CkHttp_RenderGet, 'CkHttp_RenderGet');
  Chilkat_GetProcedureAddress(CkHttp_ResumeDownload, 'CkHttp_ResumeDownload');
  Chilkat_GetProcedureAddress(CkHttp_S3_CreateBucket, 'CkHttp_S3_CreateBucket');
  Chilkat_GetProcedureAddress(CkHttp_S3_DeleteBucket, 'CkHttp_S3_DeleteBucket');
  Chilkat_GetProcedureAddress(CkHttp_S3_DeleteObject, 'CkHttp_S3_DeleteObject');
  Chilkat_GetProcedureAddress(CkHttp_S3_DownloadFile, 'CkHttp_S3_DownloadFile');
  Chilkat_GetProcedureAddress(CkHttp_S3_DownloadString, 'CkHttp_S3_DownloadString');
  Chilkat_GetProcedureAddress(CkHttp_S3_FileExists, 'CkHttp_S3_FileExists');
  Chilkat_GetProcedureAddress(CkHttp_S3_ListBucketObjects, 'CkHttp_S3_ListBucketObjects');
  Chilkat_GetProcedureAddress(CkHttp_S3_ListBuckets, 'CkHttp_S3_ListBuckets');
  Chilkat_GetProcedureAddress(CkHttp_S3_UploadFile, 'CkHttp_S3_UploadFile');
  Chilkat_GetProcedureAddress(CkHttp_S3_UploadString, 'CkHttp_S3_UploadString');
  Chilkat_GetProcedureAddress(CkHttp_SetCookieXml, 'CkHttp_SetCookieXml');
  Chilkat_GetProcedureAddress(CkHttp_SetOAuthRsaKey, 'CkHttp_SetOAuthRsaKey');
  Chilkat_GetProcedureAddress(CkHttp_SetRequestHeader, 'CkHttp_SetRequestHeader');
  Chilkat_GetProcedureAddress(CkHttp_SetSslClientCert, 'CkHttp_SetSslClientCert');
  Chilkat_GetProcedureAddress(CkHttp_SetSslClientCertPem, 'CkHttp_SetSslClientCertPem');
  Chilkat_GetProcedureAddress(CkHttp_SetSslClientCertPfx, 'CkHttp_SetSslClientCertPfx');
  Chilkat_GetProcedureAddress(CkHttp_SleepMs, 'CkHttp_SleepMs');
  Chilkat_GetProcedureAddress(CkHttp_UrlDecode, 'CkHttp_UrlDecode');
  Chilkat_GetProcedureAddress(CkHttp_UrlEncode, 'CkHttp_UrlEncode');
  Chilkat_GetProcedureAddress(CkHttp_DownloadBd, 'CkHttp_DownloadBd');
  Chilkat_GetProcedureAddress(CkHttp_DownloadSb, 'CkHttp_DownloadSb');
  Chilkat_GetProcedureAddress(CkHttp_QuickGetSb, 'CkHttp_QuickGetSb');
  Chilkat_GetProcedureAddress(CkHttp_QuickGetBd, 'CkHttp_QuickGetBd');
  Chilkat_GetProcedureAddress(CkHttp_SetUrlVar, 'CkHttp_SetUrlVar');
  Chilkat_GetProcedureAddress(CkHttp_ClearUrlVars, 'CkHttp_ClearUrlVars');
  Chilkat_GetProcedureAddress(CkHttp_SharePointOnlineAuth, 'CkHttp_SharePointOnlineAuth');
  Chilkat_GetProcedureAddress(CkHttp_ResumeDownloadBd, 'CkHttp_ResumeDownloadBd');
  Chilkat_GetProcedureAddress(CkHttp_CreateTimestampRequest, 'CkHttp_CreateTimestampRequest');
  Chilkat_GetProcedureAddress(CkHttp_VerifyTimestampReply, 'CkHttp_VerifyTimestampReply');
  Chilkat_GetProcedureAddress(CkHttp_CreateOcspRequest, 'CkHttp_CreateOcspRequest');
  Chilkat_GetProcedureAddress(CkHttp_ParseOcspReply, 'CkHttp_ParseOcspReply');
  Chilkat_GetProcedureAddress(CkHttp_SetSecurePassword, 'CkHttp_SetSecurePassword');
  Chilkat_GetProcedureAddress(CkHttp_S3_UploadBd, 'CkHttp_S3_UploadBd');
  Chilkat_GetProcedureAddress(CkHttp_S3_DownloadBd, 'CkHttp_S3_DownloadBd');
  Chilkat_GetProcedureAddress(CkHttp_ClearHeaders, 'CkHttp_ClearHeaders');
  Chilkat_GetProcedureAddress(CkHttp_S3_GenPresignedUrl, 'CkHttp_S3_GenPresignedUrl');
  Chilkat_GetProcedureAddress(CkHttp_SetSslCertRequirement, 'CkHttp_SetSslCertRequirement');
  Chilkat_GetProcedureAddress(CkHttp_OcspCheck, 'CkHttp_OcspCheck');
  Chilkat_GetProcedureAddress(CkHttp_SetAuthPrivateKey, 'CkHttp_SetAuthPrivateKey');
  Chilkat_GetProcedureAddress(CkHttp_SetAuthTokenSb, 'CkHttp_SetAuthTokenSb');
  Chilkat_GetProcedureAddress(CkHttp_GetLastJsonData, 'CkHttp_GetLastJsonData');
  Chilkat_GetProcedureAddress(CkHttp_GetServerCert, 'CkHttp_GetServerCert');
  Chilkat_GetProcedureAddress(CkHttp_HttpBd, 'CkHttp_HttpBd');
  Chilkat_GetProcedureAddress(CkHttp_HttpNoBody, 'CkHttp_HttpNoBody');
  Chilkat_GetProcedureAddress(CkHttp_HttpStr, 'CkHttp_HttpStr');
  Chilkat_GetProcedureAddress(CkHttp_HttpSb, 'CkHttp_HttpSb');
  Chilkat_GetProcedureAddress(CkHttp_HttpJson, 'CkHttp_HttpJson');
  Chilkat_GetProcedureAddress(CkHttp_HttpReq, 'CkHttp_HttpReq');
  Chilkat_GetProcedureAddress(CkHttp_HttpFile, 'CkHttp_HttpFile');
  Chilkat_GetProcedureAddress(CkHttp_HttpParams, 'CkHttp_HttpParams');
  Chilkat_GetProcedureAddress(CkHttp_HttpSReq, 'CkHttp_HttpSReq');
  Chilkat_GetProcedureAddress(CkHttp_S3_DeleteObjects, 'CkHttp_S3_DeleteObjects');
  Chilkat_GetProcedureAddress(CkHttp_ClearInMemoryCookies, 'CkHttp_ClearInMemoryCookies');
  Chilkat_GetProcedureAddress(CkHttp_SetDPoPKey, 'CkHttp_SetDPoPKey');

end.
