Http Swift Reference Documentation

CkoHttp

Current Version: 11.1.0

Class for sending HTTP requests and receiving server responses.

  • Supports GET, POST, HEAD, PUT, DELETE, WebDav, and custom HTTP request methods.
  • HTTP Authentication: Basic, NTLM, Digest, Negotiate
  • HTTPS (SSL/TLS) with client-side certificate capabilities.
  • Cookie caching, auto-resend, persisting to XML files.
  • Content caching.
  • Supports HTTP proxies
  • Auto-follow redirects if desired.
  • Amazon S3 methods.
  • XML HTTP Request
  • HTTP file upload capabilities
  • Asynchronous features -- putting HTTP requests in background threads.
  • Supports SOCK5/SOCKS4 proxies.
  • IPv6 capable.

Object Creation

let obj = CkoHttp()!

Properties

AbortCurrent
abortCurrent: Bool
Introduced in version 9.5.0.58

When set to true, causes the currently running method to abort. Methods that always finish quickly (i.e.have no length file operations or network communications) are not affected. If no method is running, then this property is automatically reset to false when the next method is called. When the abort occurs, this property is reset to false. Both synchronous and asynchronous method calls can be aborted. (A synchronous method call could be aborted by setting this property from a separate thread.)

top
Accept
accept: String!

The Accept header field to be automatically included with GET requests issued by QuickGet or QuickGetStr. The default value is */*.

top
AcceptCharset
acceptCharset: String!

The Accept-Charset header field to be automatically included with GET requests issued by QuickGet or QuickGetStr. The default value is the empty string, which means no Accept-Charset header is included.

top
AcceptLanguage
acceptLanguage: String!

The Accept-Language header field to be automatically included with GET requests issued by QuickGet or QuickGetStr. The default value is en-us,en;q=0.5.

top
AllowGzip
allowGzip: Bool

Controls whether the Accept-Encoding: gzip header is added to HTTP requests sent via any method that sends an HTTP request without using the HttpRequest object (such as QuickGetStr). If false, then the empty Accept-Encoding header is added which means the server response should contain the uncompressed content. The default value is true, which means the server, if it chooses, may send a gzipped response.

top
AllowHeaderFolding
allowHeaderFolding: Bool
Introduced in version 9.5.0.63

If this property is set to false, then no MIME header folding will be automatically applied to any request header. The default is true.

top
AuthSignature
authSignature: String!
Introduced in version 9.5.0.89

If set, then automatically adds the Authorization: Signature keyId=..., algorithm=..., headers=..., signature=... header to all requests. This property should be set to a JSON string containing the information needed to compute and automatically add the HTTP Signature. See the example(s) below.

top
AuthToken
authToken: String!
Introduced in version 9.5.0.67

When set, this automatically appends the Authorization: Bearer <access_token> header to all requests. Use this property for OAuth2 access tokens by assigning the token string to it. For older OAuth1 tokens, use the OAuthToken property instead.

Beginning with Chilkat v10.1.2, this method can accept a JSON string containing the necessary information for Chilkat to automatically retrieve an OAuth2 access token using the Client Credentials flow. The JSON should include the client secret, client ID, token endpoint, and scope(s). Refer to the example below for more information. This feature is compatible with any OAuth2 provider that supports the client credentials flow.

top
AutoAddHostHeader
autoAddHostHeader: Bool

If set to true, the Host header field will automatically be added to the request header for any QuickGet or QuickGetStr method calls. The value of the Host header field is taken from the hostname part of the URL passed to QuickGet/QuickGetStr.

top
AwsAccessKey
awsAccessKey: String!

The AWS Access Key to be used with the Amazon S3 methods listed below.

top
AwsEndpoint
awsEndpoint: String!

The regional endpoint (domain) to be used for Amazon S3 method calls. The default value is s3.amazonaws.com. This can be set to any valid Amazon S3 endpoint, such as s3-eu-west-1.amazonaws.com, or the endpoints for S3-API compatible services from other different providers.

More Information and Examples
top
AwsRegion
awsRegion: String!
Introduced in version 9.5.0.56

The AWS (S3) region, such as us-east-1, us-west-2, eu-west-1, eu-central-1, etc. This propery defaults to us-east-1. It is only used when the AwsSignatureVersion property is set to 4. When the AwsSignatureVersion property is set to 2, then this property is unused.

top
AwsSecretKey
awsSecretKey: String!

The AWS Secret Key to be used with the Amazon S3 methods listed below.

top
AwsSessionToken
awsSessionToken: String!
Introduced in version 9.5.0.95

This is only used if a set of temporary security credentials were obtained by calling the AssumeRole action of the AWS Security Token Service.

top
AwsSignatureVersion
awsSignatureVersion: Int
Introduced in version 9.5.0.56

Selects the AWS Signature Version algorithm. The default value is 4. May be set to 2 to select AWS Signature Version 2. (The only valid choices are 2 and 4.)

top
AwsSubResources
awsSubResources: String!

The AWS sub-resources to be used with the Amazon S3 methods listed below.

If the S3 request needs to address a sub-resource, like ?versioning, ?policy, ?location, ?acl, or ?torrent, or ?versionid append the sub-resource and its value if it has one. Note that in case of multiple sub-resources, sub-resources must be lexicographically sorted by sub-resource name and separated by '&'. e.g. acl&versionId=value

The list of sub-resources that can be included are: acl, location, logging, notification, partNumber, policy, requestPayment, torrent, uploadId, uploads, versionId, versioning, versions and website.

top
BandwidthThrottleDown
bandwidthThrottleDown: Int
Introduced in version 9.5.0.49

If non-zero, limits (throttles) the download bandwidth to approximately this maximum number of bytes per second. The default value of this property is 0.

top
BandwidthThrottleUp
bandwidthThrottleUp: Int
Introduced in version 9.5.0.49

If non-zero, limits (throttles) the upload bandwidth to approximately this maximum number of bytes per second. The default value of this property is 0.

top
BasicAuth
basicAuth: Bool

If HTTP basic authentication is needed, this property must be set to true. The HTTP protocol allows for several different types of authentication schemes, such as NTLM, Digest, OAuth1, etc. A given server will support (or allow) certain authentication schemes (also known as authentication methods). Except for the Basic authentication method, the other forms of authentication do not involve sending the login and password in plain unencrypted text over the connection. The Basic authentication method is insecure in that it sends the login/password for all to see. If the connection is SSL/TLS, then this might be considered OK. Chilkat takes the safe approach and will not allow Basic authentication unless this property has been explicitly set to true. The default value of this property is false.

Note: It is not required to know the authentication methods accepted by the server beforehand (except for the case of Basic authentication). When authentication is required, Chilkat will first send the request without the Authorization header, receive back the 401 Authorization Required response along with information about what authentication methods are accepted, and then re-send with an accepted authentication method. If the authentication method is known in advance, then an application may set the appropriate property, such as NtlmAuth to true so that the extra (internal) round-trip is not required.

Note: The login and password is sent using the utf-8 byte representation. Some servers expect the ANSI byte representation (typically Windows-1252). Starting in Chilkat v9.5.0.87, to send the login/password using ANSI, add the AnsiLogin keyword to the UncommonOptions property.

More Information and Examples
top
ClientIpAddress
clientIpAddress: String!

The IP address to use for computers with multiple network interfaces or IP addresses. For computers with a single network interface (i.e. most computers), this property should not be set. For multihoming computers, the default IP address is automatically used if this property is not set.

The IP address is a string such as in dotted notation using numbers, not domain names, such as 165.164.55.124.

More Information and Examples
top
ConnectFailReason
connectFailReason: Int (read-only)
Introduced in version 9.5.0.56

This property will be set to the status of the last HTTP connection made (or failed to be made) by any HTTP method.

Possible values are:

0 = success

Normal (non-TLS) sockets:
1 = empty hostname
2 = DNS lookup failed
3 = DNS timeout
4 = Aborted by application.
5 = Internal failure.
6 = Connect Timed Out
7 = Connect Rejected (or failed for some other reason)
50 = HTTP proxy authentication failure.
98 = Async operation in progress.
99 = Product is not unlocked.

SSL/TLS:
100 = TLS internal error.
101 = Failed to send client hello.
102 = Unexpected handshake message.
103 = Failed to read server hello.
104 = No server certificate.
105 = Unexpected TLS protocol version.
106 = Server certificate verify failed (the server certificate is expired or the cert's signature verification failed).
107 = Unacceptable TLS protocol version.
108 = App-defined server certificate requirements failure.
109 = Failed to read handshake messages.
110 = Failed to send client certificate handshake message.
111 = Failed to send client key exchange handshake message.
112 = Client certificate's private key not accessible.
113 = Failed to send client cert verify handshake message.
114 = Failed to send change cipher spec handshake message.
115 = Failed to send finished handshake message.
116 = Server's Finished message is invalid.
125 = Peer tried to connect using older SSL 2.0 protocol version.
126 = TLS Pin Set Mismatch.
127 = TLS 1.3 handshake error.

top
Connection
connection: String!

The Connection header field to be automatically included with GET requests issued by QuickGet or QuickGetStr. The default value is Keep-Alive. To prevent the Connection header from being added to the HTTP header, set this property to the empty string.

top
ConnectTimeout
connectTimeout: Int

The amount of time in seconds to wait before timing out when connecting to an HTTP server. The default ConnectTimeout is 30 seconds.

Note: This is the maximum number of seconds to wait for a server to accept a TCP connection. Once the connection is accepted, and bytes begin flowing back-and-forth, then it is the ReadTimeout property that applies. It is the ReadTimeout that applies when receiving data, which includes the reads that occur during a TLS handshake.

top
CookieDir
cookieDir: String!

Specifies a directory where cookies are automatically persisted if the Http.SaveCookies property is turned on. Cookies are stored in XML formatted files, one per domain, to main it easy for other programs to understand and parse. May be set to the string memory to cache cookies in memory.

More Information and Examples
top
DebugLogFilePath
debugLogFilePath: String!

If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. This logging helps identify the context and history of Chilkat calls leading up to any crash or hang, aiding in debugging.

Enabling the VerboseLogging property provides more detailed information. This property is mainly used for debugging rare instances where a Chilkat method call causes a hang or crash, which should generally not happen.

Possible causes of hangs include:

  • A timeout property set to 0, indicating an infinite timeout.
  • A hang occurring within an event callback in the application code.
  • An internal bug in the Chilkat code causing the hang.

More Information and Examples
top
DefaultFreshPeriod
defaultFreshPeriod: Int

The default freshness period (in minutes) for cached documents when the FreshnessAlgorithm property is set to 0. The default value is 10080 (1 week).

top
DigestAuth
digestAuth: Bool

Setting this property to true causes the HTTP component to use digest authentication. The default value is false.

top
FetchFromCache
fetchFromCache: Bool

Set to true if pages should be fetched from cache when possible. Only HTTP GET requests are cached. HTTP responses that include Set-Cookie headers are not cached. A page is fetched from the disk cache if it is present and it is fresh according to the FreshnessAlgorithm property. If a page exists in cache but is not fresh, the HTTP component will issue a revalidate request and update the cache appropriately according to the response.

More Information and Examples
top
FinalRedirectUrl
finalRedirectUrl: String! (read-only)

If an HTTP GET was redirected (as indicated by the WasRedirected property), this property will contain the final redirect URL, assuming the FollowRedirects property is true.

Note: Starting in v9.5.0.49, this property will contain the redirect URL for 301/302 responses even if FollowRedirects is not set to true.

top
FollowRedirects
followRedirects: Bool

If true, then 301, 302, 303, 307, and 308 redirects are automatically followed when calling QuickGet and QuickGetStr. FollowRedirects is true by default.

top
FreshnessAlgorithm
freshnessAlgorithm: Int

The freshness algorithm to use when determining the freshness of a cached HTTP GET response. A value of 1 causes an LM-factor algorithm to be used. This is the default. The LMFactor property is a value between 1 and 100 indicating the percentage of time based on the last-modified date of the HTML page. For example, if the LMFactor is 50, and an HTML page was modified 10 days ago, then the page will expire (i.e. no longer be fresh) in 5 days (50% of 10 days). This only applies to HTTP responses that do not have page expiration information. If the FreshnessAlgorithm = 0, then a constant expire time period determined by the DefaultFreshPeriod property is used.

top
HeartbeatMs
heartbeatMs: Int

The interval in milliseconds between each AbortCheck event callback, which enables an application to abort certain method calls before they complete. By default, HeartbeatMs is set to 0, meaning no AbortCheck event callbacks will trigger.

More Information and Examples
top
IgnoreMustRevalidate
ignoreMustRevalidate: Bool

Some HTTP responses contain a Cache-Control: must-revalidate header. If this is present, the server is requesting that the client always issue a revalidate HTTP request instead of serving the page directly from cache. If IgnoreMustRevalidate is set to true, then Chilkat HTTP will serve the page directly from cache without revalidating until the page is no longer fresh.

The default value of this property is false.

top
IgnoreNoCache
ignoreNoCache: Bool

Some HTTP responses contain headers of various types that indicate that the page should not be cached. Chilkat HTTP will adhere to this unless this property is set to true.

The default value of this property is false.

top
KeepResponseBody
keepResponseBody: Bool
Introduced in version 9.5.0.55

If true, then the response body, if text, is saved to the LastResponseBody property for all methods that do not return an HttpResponse object. The default value of this property is false.

More Information and Examples
top
LastContentType
lastContentType: String! (read-only)

The content-type of the last HTTP response received by the HTTP component.

top
LastErrorHtml
lastErrorHtml: String! (read-only)

Provides HTML-formatted information about the last called method or property. If a method call fails or behaves unexpectedly, check this property for details. Note that information is available regardless of the method call's success.

top
LastErrorText
lastErrorText: String! (read-only)

Provides plain text information about the last called method or property. If a method call fails or behaves unexpectedly, check this property for details. Note that information is available regardless of the method call's success.

top
LastErrorXml
lastErrorXml: String! (read-only)

Provides XML-formatted information about the last called method or property. If a method call fails or behaves unexpectedly, check this property for details. Note that information is available regardless of the method call's success.

top
LastFromCache
lastFromCache: Bool (read-only)
Introduced in version 9.5.0.91

true if the last GET was fetched from cache.

More Information and Examples
top
LastHeader
lastHeader: String! (read-only)

The text of the last HTTP header sent by any of this class's methods. The purpose of this property is to allow the developer to examine the exact HTTP header for debugging purposes.

top
LastMethodSuccess
lastMethodSuccess: Bool

Indicates the success or failure of the most recent method call: true means success, false means failure. This property remains unchanged by property setters or getters. This method is present to address challenges in checking for null or Nothing returns in certain programming languages. Note: This property does not apply to methods that return integer values or to boolean-returning methods where the boolean does not indicate success or failure.

top
LastModDate
lastModDate: String! (read-only)

The value of the Last-Modified header in the last HTTP response received by the HTTP component.

top
LastResponseBody
lastResponseBody: String! (read-only)
Introduced in version 9.5.0.55

The response body of the last HTTP response received by the HTTP component (for methods that do not return an HttpResponse object). The last response body is only saved to this property IF the KeepResponseBody property is set to true.

top
LastResponseHeader
lastResponseHeader: String! (read-only)

The entire response header for the last HTTP response received by the HTTP component (for methods that do not return an HttpResponse object).

top
LastStatus
lastStatus: Int (read-only)

The last HTTP status value received by the HTTP component. This only applies to methods that do not return an HTTP response object. For methods that return an HTTP response object, such as SynchronousRequest, the status code is found in the StatusCode property of the response object.

top
LastStatusText
lastStatusText: String! (read-only)
Introduced in version 9.5.0.69

The last HTTP status text received by the HTTP component. This only applies to methods that do not return an HTTP response object. For methods that return an HTTP response object, such as SynchronousRequest, the status text is found in the StatusText property of the response object.

top
LMFactor
lMFactor: Int

An integer between 1 and 100 that indicates the percentage of time from the HTTP page's last-modified date that will be used for the freshness period. The default value is 25. For example, if a page is fetched with a last-modified date of 4 weeks ago, and the LMFactor = 25, then the page will be considered fresh in the cache for 1 week (25% of 4 weeks).

top
Login
login: String!

The HTTP login for pages requiring a login/password. Chilkat HTTP can do Basic, Digest, and NTLM HTTP authentication. (NTLM is also known as SPA (or Windows Integrated Authentication). To use Basic authentication, the BasicAuth property must be set equal to true. It is not necessary to set the NtlmAuth or DigestAuth properties beforehand if NTLM or Digest authentication is needed. However, it is most efficient to pre-set these properties when the type of authentication is known in advance.

Important: If NTLM authentication is used, it may be incorrect to set the Login property equal to mydomain\mylogin. Instead, set the LoginDomain property equal to mydomain, and set this property equal to mylogin.

Note: When the Login and Password properties are set, and the type of authentication is specified by setting one of the following properties equal to true (BasicAuth, DigestAuth, NtlmAuth), Chilkat will automatically add the Authorization: ... header in the correct format.

top
LoginDomain
loginDomain: String!

The optional domain name to be used with NTLM / Negotiate authentication.

top
MaxConnections
maxConnections: Int

The maximum number of simultaneous open HTTP connections managed by the HTTP component. The Chilkat HTTP component automatically manages HTTP connections. If the number of open HTTP connections is about to be exceeded, the connection with the least recent activity is automatically closed.

top
MaxFreshPeriod
maxFreshPeriod: Int

Limits the amount of time a document can be kept fresh in the cache. The MaxFreshPeriod is specified in minutes, and the default value is 525600 which is equal to 1 year.

top
MaxResponseSize
maxResponseSize: UInt

The maximum HTTP response size to be accepted by the calling program. A value of 0 (the default) indicates that there is no maximum value.

top
MaxUrlLen
maxUrlLen: Int

The Http class will automatically fail any URL longer than this length. The default MaxUrlLen is 2000 characters.

top
MimicFireFox
mimicFireFox: Bool

If set to true, then the appropriate headers to mimic Mozilla/FireFox are automatically added to requests sent via the QuickGet and QuickGetStr methods.

top
MimicIE
mimicIE: Bool

If set to true, then the appropriate headers to mimic Internet Explorer are automatically added to requests sent via the QuickGet and QuickGetStr methods.

top
MinFreshPeriod
minFreshPeriod: Int

The freshness period for a document in cache will not be less than this value (in minutes). The default value is 30.

top
NegotiateAuth
negotiateAuth: Bool

Set this property equal to true for Negotiate authentication.

Note: The NegotiateAuth property is only available for the Microsoft Windows operating system.

top
NtlmAuth
ntlmAuth: Bool

Setting this property to true causes the HTTP component to use NTLM authentication (also known as IWA -- or Integrated Windows Authentication) when authentication with an HTTP server. The default value is false.

top
NumCacheLevels
numCacheLevels: Int

The number of directory levels to be used under each cache root. The default is 0, meaning that each cached HTML page is stored in a cache root directory. A value of 1 causes each cached page to be stored in one of 255 subdirectories named 0,1, 2, ...255 under a cache root. A value of 2 causes two levels of subdirectories (0..255/0..255) under each cache root. The HTTP control automatically creates subdirectories as needed. The reason for mutliple levels is to alleviate problems that may arise with unrelated software when huge numbers of files are stored in a single directory. For example, Windows Explorer does not behave well when trying to display the contents of directories with thousands of files.

More Information and Examples
top
NumCacheRoots
numCacheRoots: Int (read-only)

Contains the number of established cache roots used by the HTTP cache to distribute the disk cache across multiple drives. Each cache root is an absolute directory path, set by calling AddCacheRoot for each root.

top
OAuth1
oAuth1: Bool

If true then causes an OAuth Authorization header to be added to any request sent by the HTTP object. For example:

Authorization: OAuth realm="http://sp.example.com/",
                oauth_consumer_key="0685bd9184jfhq22",
                oauth_token="ad180jjd733klru7",
                oauth_signature_method="HMAC-SHA1",
                oauth_signature="wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D",
                oauth_timestamp="137131200",
                oauth_nonce="4572616e48616d6d65724c61686176",
                oauth_version="1.0"
The information used to compute the OAuth Authorization header is obtained from the other OAuth* properties, such as OAuthConsumerKey, OAuthConsumerSecret, OAuthRealm, etc.

top
OAuthBodyHash
oAuthBodyHash: Bool
Introduced in version 9.5.0.91

If set to true, then the oauth_body_hash is automatically added to an OAuth1 Authorization header. The oauth_body_hash contains the SHA-256 hash of the HTTP request body that is sent.

top
OAuthCallback
oAuthCallback: String!
Introduced in version 9.5.0.53

The OAuth 1.0 callback URL. Defaults to oob.

top
OAuthConsumerKey
oAuthConsumerKey: String!

The OAuth consumer key to be used in the Authorization header.

top
OAuthConsumerSecret
oAuthConsumerSecret: String!

The OAuth consumer secret to be used in computing the contents of the Authorization header.

top
OAuthRealm
oAuthRealm: String!

The OAuth realm to be used in the Authorization header.

top
OAuthSigMethod
oAuthSigMethod: String!

The OAuth signature method, such as HMAC-SHA1 to be used in the Authorization header. The default is HMAC-SHA1. It is also possible to choose HMAC-SHA256, RSA-SHA1 or RSA-SHA2. For RSA algorithms, an RSA private key would need to be provided via the SetOAuthRsaKey method.

Note: RSA-SHA2 is supported starting in Chilkat v9.5.0.56

top
OAuthToken
oAuthToken: String!

The OAuth1 token to be used in the Authorization header. Note: This is for OAuth1. Use the AuthToken property for OAuth2.

More Information and Examples
top
OAuthTokenSecret
oAuthTokenSecret: String!

The OAuth token secret to be used in computing the Authorization header.

top
OAuthVerifier
oAuthVerifier: String!

The OAuth verifier to be used in the Authorization header.

top
Password
password: String!

The HTTP password for pages requiring a login/password. Chilkat HTTP can do Basic, Digest, and NTLM HTTP authentication. (NTLM is also known as SPA (or Windows Integrated Authentication). To use Basic authentication, the BasicAuth property must be set equal to true. It is not necessary to set the NtlmAuth or DigestAuth properties beforehand if NTLM or Digest authentication is needed. However, it is most efficient to pre-set these properties when the type of authentication is known in advance.

Note: When the Login and Password properties are set, and the type of authentication is specified by setting one of the following properties equal to true (BasicAuth, DigestAuth, NtlmAuth), Chilkat will automatically add the Authorization: ... header in the correct format.

top
PercentDoneScale
percentDoneScale: Int
Introduced in version 9.5.0.49

This property is only valid in programming environment and languages that allow for event callbacks.

Sets the value to be defined as 100% complete for the purpose of PercentDone event callbacks. The defaut value of 100 means that at most 100 event PercentDone callbacks will occur in a method that (1) is event enabled and (2) is such that it is possible to measure progress as a percentage completed. This property may be set to larger numbers to get more fine-grained PercentDone callbacks. For example, setting this property equal to 1000 will provide callbacks with .1 percent granularity. For example, a value of 453 would indicate 45.3% competed. This property is clamped to a minimum value of 10, and a maximum value of 100000.

top
PreferIpv6
preferIpv6: Bool

If true, then use IPv6 over IPv4 when both are supported for a particular domain. The default value of this property is false, which will choose IPv4 over IPv6.

top
ProxyAuthMethod
proxyAuthMethod: String!

Set this to basic if you know in advance that Basic authentication is to be used for the HTTP proxy. Otherwise leave this property unset. Note: It is not necessary to set this property. The HTTP component will automatically handle proxy authentication for any of the supported authentication methods: NTLM, Digest, or Basic. Setting this property equal to basic prevents the 407 response which is automatically handled internal to Chilkat and never seen by your application.

Note: If NTLM authentication does not succeed, set the Global.DefaultNtlmVersion property equal to 1 and then retry.

top
ProxyDirectTls
proxyDirectTls: Bool
Introduced in version 9.5.0.83

Set to true if the proxy server expects a direct TLS connection. (This is where the initial connection to the HTTP proxy server is TLS. See Squid Direct TLS Connection. The default value of this property is false.

top
ProxyDomain
proxyDomain: String!

The domain name of a proxy host if an HTTP proxy is used. This can also be set to an IP address.

top
ProxyLogin
proxyLogin: String!

If an HTTP proxy is used and it requires authentication, this property specifies the HTTP proxy login.

top
ProxyLoginDomain
proxyLoginDomain: String!

The NTLM authentication domain (optional) if NTLM authentication is used.

top
ProxyPassword
proxyPassword: String!

If an HTTP proxy is used and it requires authentication, this property specifies the HTTP proxy password.

top
ProxyPort
proxyPort: Int

The port number of a proxy server if an HTTP proxy is used.

top
ReadTimeout
readTimeout: Int

The amount of time in seconds to wait before timing out when reading from an HTTP server. The ReadTimeout is the amount of time that needs to elapse while no additional data is forthcoming. During a long download, if the data stream halts for more than this amount, it will timeout. Otherwise, there is no limit on the length of time for the entire download.

The default value is 60 seconds. Note: Prior to v9.5.0.76, the default was 20 seconds.

top
ReceivedCertReq
receivedCertReq: Bool (read-only)
Introduced in version 9.5.0.92

Indicates whether the last HTTPS connection received a TLS CertificateRequest handshake message indicating that the server may require a client certificate.

top
RedirectVerb
redirectVerb: String!

Indicates the HTTP verb, such as GET, POST, PUT, etc. to be used for a redirect when the FollowRedirects property is set to true. The default value of this property is GET. This will produce the same behavior as a web browser (such as FireFox). If this property is set to the empty string, then it will cause the same verb as the original HTTP request to be used.

Note: Prior to version 9.5.0.44, the default value of this property was the empty string.

top
Referer
referer: String!

The Referer header field to be automatically included with GET requests issued by QuickGet or QuickGetStr. The default value is the empty string which causes the Referer field to be omitted from the request header.

top
RequiredContentType
requiredContentType: String!

If set, then any HTTP response to any POST or GET, including downloads, will be rejected if the content-type in the response header does not match this setting. If the content-type does not match, only the header of the HTTP response is read, the connection to the HTTP server is closed, and the remainder of the response is never read.

This property is empty (zero-length string) by default.

Some typical content-types are text/html, text/xml, image/gif, image/jpeg, application/zip, application/msword, application/pdf, etc.

top
RequireHostnameMatch
requireHostnameMatch: Bool
Introduced in version 11.0.0

If true, then the hostname/domain in the URL must match at least one of the entries in the server certificate's SAN. A SAN (Subject Alternative Name) field in an SSL/TLS certificate contains a list of additional domain names, subdomains, IP addresses, or other identifiers that the certificate is valid for.

In actuality, it is the SNI hostname in the TLS handshake that must match a SAN entry. By default, Chilkat uses the hostname from the URL as the SNI hostname. An application can explicitly set the SNI hostname via the SniHostname property, which would be typical if connecting via an IP address. See the example below.

The default value is false.

top
RequireSslCertVerify
requireSslCertVerify: Bool

If true, then the HTTP client will verify the server's SSL certificate. The certificate is expired, or if the cert's signature is invalid, the connection is not allowed. The default value of this property is false.

top
SaveCookies
saveCookies: Bool

If this property is true, cookies are automatically persisted to XML files in the directory specified by the CookiesDir property (or in memory if CookieDir = memory). Both CookiesDir and SaveCookies must be set for cookies to be persisted.

More Information and Examples
top
SendBufferSize
sendBufferSize: Int

The buffer size to be used with the underlying TCP/IP socket for sending. The default value is 65535.

top
SendCookies
sendCookies: Bool

If true, then cookies previously persisted to the CookiesDir are automatically added to all HTTP requests. Only cookies matching the domain and path are added.

More Information and Examples
top
SessionLogFilename
sessionLogFilename: String!

Enables file-based session logging. If set to a filename (or relative/absolute filepath), then the exact HTTP requests and responses are logged to a file. The file is created if it does not already exist, otherwise it is appended.

More Information and Examples
top
SniHostname
sniHostname: String!
Introduced in version 9.5.0.82

Sets the SNI hostname for the TLS ClientHello. This property is usually necessary only when the domain is specified by an IP address and an SNI hostname is required. By default Chilkat uses the hostname in the URL for the SNI hostname in the TLS ClientHello extension automatically.

More Information and Examples
top
SocksHostname
socksHostname: String!

The SOCKS4/SOCKS5 hostname or IPv4 address (in dotted decimal notation). This property is only used if the SocksVersion property is set to 4 or 5).

top
SocksPassword
socksPassword: String!

The SOCKS5 password (if required). The SOCKS4 protocol does not include the use of a password, so this does not apply to SOCKS4.

top
SocksPort
socksPort: Int

The SOCKS4/SOCKS5 proxy port. The default value is 1080. This property only applies if a SOCKS proxy is used (if the SocksVersion property is set to 4 or 5).

top
SocksUsername
socksUsername: String!

The SOCKS4/SOCKS5 proxy username. This property is only used if the SocksVersion property is set to 4 or 5).

top
SocksVersion
socksVersion: Int

SocksVersion May be set to one of the following integer values:

0 - No SOCKS proxy is used. This is the default.
4 - Connect via a SOCKS4 proxy.
5 - Connect via a SOCKS5 proxy.

top
SoRcvBuf
soRcvBuf: Int

Sets the receive buffer size socket option. Normally, this property should be left unchanged. The default value is 4194304.

This property can be increased if download performance seems slow. It is recommended to be a multiple of 4096.

top
SoSndBuf
soSndBuf: Int

Sets the send buffer size socket option. Normally, this property should be left unchanged. The default value is 262144.

This property can be increased if upload performance seems slow. It is recommended to be a multiple of 4096. Testing with sizes such as 512K and 1MB is reasonable.

top
SslAllowedCiphers
sslAllowedCiphers: String!
Introduced in version 9.5.0.48

Provides a means for setting a list of ciphers that are allowed for SSL/TLS connections. The default (empty string) indicates that all implemented ciphers are possible. The TLS ciphers supported in Chilkat v9.5.0.55 and later are:

TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
TLS_ECDHE_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_RC4_128_MD5
TLS_DHE_RSA_WITH_DES_CBC_SHA
TLS_RSA_WITH_DES_CBC_SHA
To restrict SSL/TLS connections to one or more specific ciphers, set this property to a comma-separated list of ciphers such as TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384. The order should be in terms of preference, with the preferred algorithms listed first. (Note that the client cannot specifically choose the algorithm is picked because it is the server that chooses. The client simply provides the server with a list from which to choose.)

The property can also disallow connections with servers having certificates with RSA keys less than a certain size. By default, server certificates having RSA keys of 512 bits or greater are allowed. Add the keyword rsa1024 to disallow connections with servers having keys smaller than 1024 bits. Add the keyword rsa2048 to disallow connections with servers having keys smaller than 2048 bits.

Note: Prior to Chilkat v9.5.0.55, it was not possible to explicitly list allowed cipher suites. The deprecated means for indicating allowed ciphers was both incomplete and unprecise. For example, the following keywords could be listed to allow matching ciphers: aes256-cbc, aes128-cbc, 3des-cbc, and rc4. These keywords will still be recognized, but programs should be updated to explicitly list the allowed ciphers.

secure-renegotiation: Starting in Chilkat v9.5.0.55, the keyword secure-renegotiation may be added to require that all renegotions be done securely (as per RFC 5746).

best-practices: Starting in Chilkat v9.5.0.55, this property may be set to the single keyword best-practices. This will allow ciphers based on the current best practices. As new versions of Chilkat are released, the best practices may change. Changes will be noted here. The current best practices are:

  • If the server uses an RSA key, it must be 1024 bits or greater.
  • All renegotations must be secure renegotiations.
  • All ciphers using RC4, DES, or 3DES are disallowed.

Example: The following string would restrict to 2 specific cipher suites, require RSA keys to be 1024 bits or greater, and require secure renegotiations: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, rsa1024, secure-renegotiation

top
SslProtocol
sslProtocol: String!
Introduced in version 9.5.0.46

Selects the SSL/TLS protocol version to be used for connections. Possible values are:

default
TLS 1.3
TLS 1.2
TLS 1.1
TLS 1.0
SSL 3.0
TLS 1.3 or higher
TLS 1.2 or higher
TLS 1.1 or higher
TLS 1.0 or higher
The default value is default which allows for the protocol to be selected dynamically at runtime based on the requirements of the server. Choosing an exact protocol will cause the connection to fail unless that exact protocol is negotiated. It is better to choose X or higher than an exact protocol. The default is effectively SSL 3.0 or higher.

top
StreamResponseBodyPath
streamResponseBodyPath: String!
Introduced in version 9.5.0.49

Allows for the HTTP response body to be streamed directly into a file. If this property is set, then any method returning an HTTP response object will stream the response body directly to the file path specified. The HTTP response object will still contain the response header. (This property is useful when the HTTP response is too large to fit into memory.)

top
TlsCipherSuite
tlsCipherSuite: String! (read-only)
Introduced in version 9.5.0.49

Contains the current or last negotiated TLS cipher suite. If no TLS connection has yet to be established, or if a connection as attempted and failed, then this will be empty. A sample cipher suite string looks like this: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256.

top
TlsPinSet
tlsPinSet: String!
Introduced in version 9.5.0.55

Specifies a set of pins for Public Key Pinning for TLS connections. This property lists the expected SPKI fingerprints for the server certificates. If the server's certificate (sent during the TLS handshake) does not match any of the SPKI fingerprints, then the TLS handshake is aborted and the connection fails. The format of this string property is as follows:

hash_algorithm, encoding, SPKI_fingerprint_1, SPKI_fingerprint_2, ...
For example, the following string specifies a single sha256 base64-encoded SPKI fingerprint:
"sha256, base64, lKg1SIqyhPSK19tlPbjl8s02yChsVTDklQpkMCHvsTE="
This example specifies two SPKI fingerprints:
"sha256, base64, 4t37LpnGmrMEAG8HEz9yIrnvJV2euVRwCLb9EH5WZyI=, 68b0G5iqMvWVWvUCjMuhLEyekM5729PadtnU5tdXZKs="
Any of the following hash algorithms are allowed:.sha1, sha256, sha384, sha512, md2, md5, haval, ripemd128, ripemd160,ripemd256, or ripemd320.

The following encodings are allowed: base64, hex, and any of the encodings indicated in the link below.

top
TlsVersion
tlsVersion: String! (read-only)
Introduced in version 9.5.0.49

Contains the current or last negotiated TLS protocol version. If no TLS connection has yet to be established, or if a connection as attempted and failed, then this will be empty. Possible values are SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, and TLS 1.3.

top
UncommonOptions
uncommonOptions: String!

This is a catch-all property to be used for uncommon needs. This property defaults to the empty string and should typically remain empty. Can be set to a list of the following comma separated keywords:

  • QuickDisconnect - Introduced in v9.5.0.77. In the call to CloseAllConnections, do not disconnect cleanly. Instead just disconnect as quickly as possible.
  • ProtectFromVpn - Introduced in v9.5.0.80. On Android systems, will bypass any VPN that may be installed or active.
  • TlsNoClientRootCert - Introduced in v9.5.0.82. Will exclude root CA certs from being included in the client certificate chain that is sent to the server for client-side authentication. This must be set prior to calling SetSslClientCert.
  • AllowEmptyHeaders - Introduced in v9.5.0.82. If present, an empty value string passed to SetHeaderField will cause the header to be added with an empty value. Otherwise, for historical purposes and backward compatibility, the header field is removed when an empty value string is passed.
  • AnsiLogin - Introduced in v9.5.0.87. For HTTP basic authentication, the login and password is sent using the utf-8 byte representation. Some servers expect the ANSI byte representation (typically Windows-1252). Use this keyword to send the login/password using ANSI.

top
UpdateCache
updateCache: Bool

Controls whether the cache is automatically updated with the responses from HTTP GET requests.

More Information and Examples
top
UseIEProxy
useIEProxy: Bool

If true, the proxy address/port used by Internet Explorer will also be used by Chilkat HTTP. Note: This property only pays attention to the proxy address and port, and does not pay attention to additional information such as IE proxy server exceptions.

top
UserAgent
userAgent: String!

This object sets the User-Agent header for its requests, except when an HttpRequest object is provided, in which case the headers in the HttpRequest are used. By default, this property is an empty string, resulting in no User-Agent header being sent.

Note: Some web servers reject requests that do not include a User-Agent. If this is the case, set the User-Agent to a string such as MyApp/1.1.

More Information and Examples
top
VerboseLogging
verboseLogging: Bool

If set to true, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. The default value is false. Verbose logging should only be used for debugging. The potentially large quantity of logged information may adversely affect peformance.

top
Version
version: String! (read-only)

Version of the component/library, such as "10.1.0"

More Information and Examples
top
WasRedirected
wasRedirected: Bool (read-only)

Indicates whether the last HTTP request was redirected (i.e. the redirect was automatically followed). If FollowRedirects is false and the response status code is 301, 302, 303, 307, or 308, then this property will remain false but the FinalRedirectUrl will contain the redirect URL that was not automatically followed.

top

Methods

AddCacheRoot
addCacheRoot(dir: String)

Disk caching operates similarly to browser caching of web pages, but it focuses on downloading web pages rather than handling HTTP requests to a REST API.

To activate disk caching, invoke the method at least once. Use the AddCacheRoot method and provide a file path (e.g., D:\MyHttpCache\) to set the root directory. To distribute the cache over multiple directories, call AddCacheRoot multiple times with different directory paths.

More Information and Examples
top
ClearHeaders
clearHeaders()
Introduced in version 9.5.0.77

Removes all headers set by the SetRequestHeader method.

More Information and Examples
top
ClearInMemoryCookies
clearInMemoryCookies()
Introduced in version 11.1.0

Clears all in-memory cookies accumulated while the SaveCookies property was set to true and the CookieDir was set to memory.

More Information and Examples
top
ClearUrlVars
clearUrlVars()
Introduced in version 9.5.0.67

Removes all URL variable values previously set by SetUrlVar .

top
CloseAllConnections
closeAllConnections() -> Bool

Closes all remaining open HTTP connections.

An HTTP object can hold up to 10 connections. If a server response lacks a Connection: Close header, the connection stays open and may be reused for subsequent requests to the same host. Connections are identified by their IP address or domain name as specified in the URL. Once the limit of 10 connections is reached, the least recently used connection will be closed to open a new one.

Returns true for success, false for failure.

More Information and Examples
top
CloseAllConnectionsAsync (1)
closeAllConnectionsAsync() -> CkoTask

Creates an asynchronous task to call the CloseAllConnections method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
CreateOcspRequest
createOcspRequest(requestDetails: CkoJsonObject, ocspRequest: CkoBinData) -> Bool
Introduced in version 9.5.0.75

Generates an OCSP request for one or more certificates using JSON (requestDetails) that specifies the request details. Refer to the examples in the provided links for guidance on constructing the JSON. Note: After creating the OCSP request, send it to the server using HttpBd with a POST request and a Content-Type of application/ocsp-request. Use ParseOcspReply to analyze the OCSP response.

Returns true for success, false for failure.

More Information and Examples
top
CreateTimestampRequest
createTimestampRequest(hashAlg: String, hashVal: String, reqPolicyOid: String, addNonce: Bool, reqTsaCert: Bool, timestampToken: CkoBinData) -> Bool
Introduced in version 9.5.0.75

Creates an RFC 3161 time-stamp request and returns the binary request token in timestampToken. The hashAlg can be sha1, sha256, sha384, sha512, or md5, The hashVal is the base64 hash of the data to be timestamped. The optional reqPolicyOid is the requested policy OID in a format such as 1.3.6.1.4.1.47272.1.2. The addNonce indicates whether to auto-generate and include a nonce in the request. It may be true or false. The reqTsaCert determines whether or not to request the TSA's certificate (true = Yes, false = No).

Note: After creating the timestamp request, send it to the server using HttpBd with a POST request and a Content-Type of application/timestamp-query. Use VerifyTimestampReply to analyze and verify the timestamp reply. See the examples linked below.

Returns true for success, false for failure.

top
DnsCacheClear
dnsCacheClear()
Introduced in version 9.5.0.38

This function clears the Chilkat in-memory DNS cache, which stores hostname-to-IP address mappings to avoid repeated DNS lookups.

Note:

  • The DNS cache is shared across all Chilkat objects, so clearing it will impact all such objects.
  • Chilkat's DNS caching respects the TTL (time to live) of DNS records. If the TTL has expired since the initial lookup, Chilkat will perform a new DNS query and update the cache with the latest IP address.

top
Download
download(url: String, saveToPath: String) -> Bool

Downloads the content at the specified url and saves to a local file at localFilePath.

The download succeeds if the HTTP response status code is in the 200s. If unsuccessful, no output file is created. If the KeepResponseBody property is set to true, the server's error response will be available in the LastResponseBody property.

The response status code will be available in the LastStatus property.

Returns true for success, false for failure.

top
DownloadAsync (1)
downloadAsync(url: String, saveToPath: String) -> CkoTask

Creates an asynchronous task to call the Download method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
DownloadAppend
downloadAppend(url: String, appendToPath: String) -> Bool

Downloads the content at the specified url and appends to the local file at appendToPath. The file is created if it does not yet exist.

The download succeeds if the HTTP status code is in the 200s. If unsuccessful, no output file is created. If the KeepResponseBody property is set to true, the server's error response will be available in the LastResponseBody property.

The response status code will be available in the LastStatus property.

Returns true for success, false for failure.

top
DownloadAppendAsync (1)
downloadAppendAsync(url: String, appendToPath: String) -> CkoTask

Creates an asynchronous task to call the DownloadAppend method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
DownloadBd
downloadBd(url: String, binData: CkoBinData) -> Bool
Introduced in version 9.5.0.63

Downloads content from url to binData, clearing binData beforehand. binData will only contain the downloaded bytes if the operation is successful.

The download succeeds if the HTTP status code is in the 200s. If unsuccessful, nothing is written to binData. If the KeepResponseBody property is set to true, the server's error response will be available in the LastResponseBody property.

The response status code will be available in the LastStatus property.

Returns true for success, false for failure.

top
DownloadBdAsync (1)
downloadBdAsync(url: String, binData: CkoBinData) -> CkoTask
Introduced in version 9.5.0.63

Creates an asynchronous task to call the DownloadBd method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
DownloadHash
downloadHash(url: String, hashAlgorithm: String, encoding: String) -> String

Fetches the content at url and returns the encoded hash using the specified algorithm (hashAlgorithm: sha1, sha256, sha384, sha512, md2, md5, haval, ripemd128, ripemd160, ripemd256, or ripemd320), and returns the hash encoded in the specified encoding (encoding: Base64, modBase64, Base32, UU, QP for quoted-printable, URL for URL-encoding, Hex, Q, B, url_oath, url_rfc1738, url_rfc2396, or url_rfc3986).

Returns nil on failure

top
DownloadHashAsync (1)
downloadHashAsync(url: String, hashAlgorithm: String, encoding: String) -> CkoTask

Creates an asynchronous task to call the DownloadHash method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
DownloadSb
downloadSb(url: String, charset: String, sb: CkoStringBuilder) -> Bool
Introduced in version 9.5.0.63

Downloads the content at the url into a Chilkat StringBuilder object. The charset tells Chilkat how to interpret the bytes received. The sb is appended with the downloaded text data.

Returns true for success, false for failure.

top
DownloadSbAsync (1)
downloadSbAsync(url: String, charset: String, sb: CkoStringBuilder) -> CkoTask
Introduced in version 9.5.0.63

Creates an asynchronous task to call the DownloadSb method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
ExtractMetaRefreshUrl
extractMetaRefreshUrl(html: String) -> String

This is a convenience method for extracting the META refresh URL from HTML. For example, if the htmlContent contains a META refresh tag, such as:

<meta http-equiv="refresh" content="5;URL='https://example.com/'">
Then the return value of this method would be https://example.com/.

Returns nil on failure

More Information and Examples
top
G_SvcOauthAccessToken
g_SvcOauthAccessToken(iss: String, scope: String, subEmail: String, numSec: Int, cert: CkoCert) -> String
Introduced in version 9.5.0.44

Obtains a Google API OAuth2 access token for a service account. The iss is your service account email address ending in gserviceaccount.com. The scope should be set to https://mail.google.com/ for GMail. The subEmail is your company email address, e.g. bob@yourcompany.com. numSec is the number of seconds the access token will remain valid.

Returns nil on failure

top
G_SvcOauthAccessTokenAsync (1)
g_SvcOauthAccessTokenAsync(iss: String, scope: String, subEmail: String, numSec: Int, cert: CkoCert) -> CkoTask
Introduced in version 9.5.0.44

Creates an asynchronous task to call the G_SvcOauthAccessToken method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
G_SvcOauthAccessToken2
g_SvcOauthAccessToken2(claimParams: CkoHashtable, numSec: Int, cert: CkoCert) -> String
Introduced in version 9.5.0.51

This method is similar to G_SvcOauthAccessToken, but offers greater customization. The first three arguments of G_SvcOauthAccessToken are replaced with claimParams to allow for future expansion with name-value parameters. See the example below.

Returns nil on failure

top
G_SvcOauthAccessToken2Async (1)
g_SvcOauthAccessToken2Async(claimParams: CkoHashtable, numSec: Int, cert: CkoCert) -> CkoTask
Introduced in version 9.5.0.51

Creates an asynchronous task to call the G_SvcOauthAccessToken2 method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
GenTimeStamp
genTimeStamp() -> String

Returns the current date and time in GMT (UTC) as a string formatted according to RFC 2616: Day, DD Mon YYYY HH:MM:SS GMT. For example, Thu, 21 Aug 2025 11:17:31 GMT.

Returns nil on failure

More Information and Examples
top
GetCacheRoot
getCacheRoot(index: Int) -> String

Returns the Nth cache root, with indexing starting at 0. Cache roots are established by calling AddCacheRoot one or more times. The number of established cache roots is in the NumCacheRoots property.

Returns nil on failure

More Information and Examples
top
GetCookieXml
getCookieXml(domain: String) -> String

Returns cookies in XML format for a specified domain. Cookies are saved only if the SaveCookies property is set to true. If the CookieDir property is set to memory, cookies are stored in-memory.

Returns nil on failure

top
GetDomain
getDomain(url: String) -> String

Utility method to extract the domain name from a URL. For instance, passing in https://chilkatsoft.com/refdoc/csharp.asp will return chilkatsoft.com.

Returns nil on failure

More Information and Examples
top
GetLastJsonData
getLastJsonData(json: CkoJsonObject)
Introduced in version 11.0.0

Offers details about the most recent method called on this object instance, although some methods may not supply any information.

More Information and Examples
top
GetRequestHeader
getRequestHeader(name: String) -> String

Returns the value of a header field previously set by calling SetRequestHeader.

Returns nil on failure

More Information and Examples
top
GetServerCert
getServerCert(domain: String, port: Int, cert: CkoCert) -> Bool
Introduced in version 11.0.0

Establishes an SSL/TLS connection with a web server to acquire its SSL certificate without retrieving any data, then disconnects.

Returns true for success, false for failure.

More Information and Examples
top
GetServerCertAsync (1)
getServerCertAsync(domain: String, port: Int, cert: CkoCert) -> CkoTask
Introduced in version 11.0.0

Creates an asynchronous task to call the GetServerCert method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
GetUrlPath
getUrlPath(url: String) -> String

Returns the path part of a URL. For example, the path part of https://example.com/folder/page?lang=en&sort=asc#section2 is /folder/page.

Returns nil on failure

More Information and Examples
top
HasRequestHeader
hasRequestHeader(name: String) -> Bool

Returns true if the header field specified by name is included in all HTTP requests, except those sent by the HttpReq or HttpSReq methods.

More Information and Examples
top
HttpBd
httpBd(verb: String, url: String, bd: CkoBinData, contentType: String, response: CkoHttpResponse) -> Bool
Introduced in version 11.0.0

Sends an HTTP request to url using the specified HTTP verb (e.g., POST, PUT, PATCH). The body of the request is defined by bd, and the Content-Type header is set by contentType, with possible values like application/octet-stream, application/pdf, image/jpeg, or application/zip.

Returns true for success, false for failure.

More Information and Examples
top
HttpBdAsync (1)
httpBdAsync(verb: String, url: String, bd: CkoBinData, contentType: String, response: CkoHttpResponse) -> CkoTask
Introduced in version 11.0.0

Creates an asynchronous task to call the HttpBd method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
HttpBinary
httpBinary(verb: String, url: String, byteData: NSData, contentType: String, response: CkoHttpResponse) -> Bool
Introduced in version 11.0.0

Sends an HTTP request to url using the specified HTTP verb (e.g., POST, PUT, PATCH). The body of the request is defined by byteData, and the Content-Type header is set by contentType, with possible values like application/octet-stream, application/pdf, image/jpeg, or application/zip.

Returns true for success, false for failure.

More Information and Examples
top
HttpBinaryAsync (1)
httpBinaryAsync(verb: String, url: String, byteData: NSData, contentType: String, response: CkoHttpResponse) -> CkoTask
Introduced in version 11.0.0

Creates an asynchronous task to call the HttpBinary method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
HttpFile
httpFile(verb: String, url: String, localFilePath: String, contentType: String, response: CkoHttpResponse) -> Bool
Introduced in version 11.0.0

Sends an HTTP request to url using the specified HTTP verb (e.g., POST, PUT, PATCH). The body of the request is streamed directly from localFilePath, and the Content-Type header is set by contentType, with possible values like application/octet-stream, application/pdf, image/jpeg, or application/zip.

Returns true for success, false for failure.

More Information and Examples
top
HttpFileAsync (1)
httpFileAsync(verb: String, url: String, localFilePath: String, contentType: String, response: CkoHttpResponse) -> CkoTask
Introduced in version 11.0.0

Creates an asynchronous task to call the HttpFile method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
HttpJson
httpJson(verb: String, url: String, json: CkoJsonObject, contentType: String, response: CkoHttpResponse) -> Bool
Introduced in version 11.0.0

Sends an HTTP request to url using the specified method in verb (e.g., POST, PUT, PATCH). The request body contains the JSON from json, with the content type set by contentType, such as application/json or application/jsonrequest.

Returns true for success, false for failure.

More Information and Examples
top
HttpJsonAsync (1)
httpJsonAsync(verb: String, url: String, json: CkoJsonObject, contentType: String, response: CkoHttpResponse) -> CkoTask
Introduced in version 11.0.0

Creates an asynchronous task to call the HttpJson method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
HttpNoBody
httpNoBody(verb: String, url: String, response: CkoHttpResponse) -> Bool
Introduced in version 11.0.0

Sends an HTTP request to url using the specified HTTP verb. The request body is empty. Verbs like GET, HEAD, and DELETE usually do not include a body. No Content-Type header is included because there is no content in the body of the request.

Returns true for success, false for failure.

More Information and Examples
top
HttpNoBodyAsync (1)
httpNoBodyAsync(verb: String, url: String, response: CkoHttpResponse) -> CkoTask
Introduced in version 11.0.0

Creates an asynchronous task to call the HttpNoBody method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
HttpParams
httpParams(verb: String, url: String, json: CkoJsonObject, response: CkoHttpResponse) -> Bool
Introduced in version 11.0.0

Sends an HTTP verb request to url with query parameters from json. The request has an empty body, and therefore, no Content-Type header is included. Typically, verbs such as GET, HEAD, and DELETE do not require a body. Applications generally call this method with url, while passing query parameters separately in json. See the example below.

Returns true for success, false for failure.

More Information and Examples
top
HttpParamsAsync (1)
httpParamsAsync(verb: String, url: String, json: CkoJsonObject, response: CkoHttpResponse) -> CkoTask
Introduced in version 11.0.0

Creates an asynchronous task to call the HttpParams method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
HttpReq
httpReq(url: String, request: CkoHttpRequest, response: CkoHttpResponse) -> Bool
Introduced in version 11.0.0

Sends an HTTP request to url where the content of the request is defined by request. The path and query part of target is taken from the url instead of the path property within request.

scheme   host       path             query    
┌────┐  ┌─────────┐┌──────────────┐ ┌────────┐ 
https://example.com/docs/index.html?search=test

Returns true for success, false for failure.

More Information and Examples
top
HttpReqAsync (1)
httpReqAsync(url: String, request: CkoHttpRequest, response: CkoHttpResponse) -> CkoTask
Introduced in version 11.0.0

Creates an asynchronous task to call the HttpReq method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
HttpSb
httpSb(verb: String, url: String, sb: CkoStringBuilder, charset: String, contentType: String, response: CkoHttpResponse) -> Bool
Introduced in version 11.0.0

Sends an HTTP request to url using the specified verb (e.g., POST, PUT, PATCH). The request body contains the text passed in sb, and the content type is specified by contentType (e.g., text/xml, application/json). The charset defines the text encoding, such as utf-8 or iso-8859-1.

Returns true for success, false for failure.

More Information and Examples
top
HttpSbAsync (1)
httpSbAsync(verb: String, url: String, sb: CkoStringBuilder, charset: String, contentType: String, response: CkoHttpResponse) -> CkoTask
Introduced in version 11.0.0

Creates an asynchronous task to call the HttpSb method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
HttpSReq
httpSReq(domain: String, port: Int, ssl: Bool, request: CkoHttpRequest, response: CkoHttpResponse) -> Bool
Introduced in version 11.0.0

Sends an HTTP request to web server at domain:port using TLS if ssl equals true. The content of the request, including the path part of the URL, query params, additional headers, and request body is defined by request.

Note: The domain should include only the domain (host), not the complete URL. The path and query params are defined in the request object.

scheme   host       path             query    
┌────┐  ┌─────────┐┌──────────────┐ ┌────────┐ 
https://example.com/docs/index.html?search=test

If successful, the response contains the response.

Returns true for success, false for failure.

More Information and Examples
top
HttpSReqAsync (1)
httpSReqAsync(domain: String, port: Int, ssl: Bool, request: CkoHttpRequest, response: CkoHttpResponse) -> CkoTask
Introduced in version 11.0.0

Creates an asynchronous task to call the HttpSReq method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
HttpStr
httpStr(verb: String, url: String, bodyStr: String, charset: String, contentType: String, response: CkoHttpResponse) -> Bool
Introduced in version 11.0.0

Sends an HTTP request to url using the specified verb (e.g., POST, PUT, PATCH). The request body contains the text passed in bodyStr, and the content type is specified by contentType (e.g., text/xml, application/json). The charset defines the text encoding, such as utf-8 or iso-8859-1.

Returns true for success, false for failure.

More Information and Examples
top
HttpStrAsync (1)
httpStrAsync(verb: String, url: String, bodyStr: String, charset: String, contentType: String, response: CkoHttpResponse) -> CkoTask
Introduced in version 11.0.0

Creates an asynchronous task to call the HttpStr method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
LoadTaskCaller
loadTaskCaller(task: CkoTask) -> Bool
Introduced in version 9.5.0.80

Loads the caller of the task's async method.

Returns true for success, false for failure.

top
OcspCheck
ocspCheck(domain: String, port: Int) -> Int
Introduced in version 9.5.0.84

Gets the server certificate at a domain:port and then sends an OCSP request to the certificate's OCSP URL to determine if the certificate has been revoked. Returns the OCSP status, which has one of the following values:

  • -1: Unable to check. See the contents of the LastErrorText property for more informaiton.
  • 0: Good
  • 1: Revoked
  • 2: Unknown

top
OcspCheckAsync (1)
ocspCheckAsync(domain: String, port: Int) -> CkoTask
Introduced in version 9.5.0.84

Creates an asynchronous task to call the OcspCheck method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
ParseOcspReply
parseOcspReply(ocspReply: CkoBinData, replyData: CkoJsonObject) -> Int
Introduced in version 9.5.0.75

Parses an OCSP reply. Returns the following possible integer values:

  • -1: The ocspReply does not contain a valid OCSP reply.
  • 0: Successful - Response has valid confirmations..
  • 1: Malformed request - Illegal confirmation request.
  • 2: Internal error - Internal error in issuer.
  • 3: Try later - Try again later.
  • 4: Not used - This value is never returned.
  • 5: Sig required - Must sign the request.
  • 6: Unauthorized - Request unauthorized.

The binaryOCSP reply is provided in ocspReply. The replyData is populated with data parsed from ocspReply.

OCSP requests are created by calling CreateOcspRequest .

More Information and Examples
top
QuickDeleteStr
quickDeleteStr(url: String) -> String

This function sends an HTTP DELETE request to a specified URL and returns the response body as a string.

The HTTP response code is stored in the LastStatus property, while additional response details are available in properties such as LastResponseHeader , LastResponseBody , LastModDate , and LastContentType .

Returns nil on failure

More Information and Examples
top
QuickDeleteStrAsync (1)
quickDeleteStrAsync(url: String) -> CkoTask

Creates an asynchronous task to call the QuickDeleteStr method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
QuickGet
quickGet(url: String) -> NSData

This function sends an HTTP GET request to a specified URL, which can include query parameters, and returns the binary response body.

The HTTP response code is stored in the LastStatus property. Additional response details can be found in properties like LastResponseHeader , LastModDate , and LastContentType .

A response code of 400 or higher indicates a failure. If the error response is text-based and the KeepResponseBody property is true, it will be available in the LastResponseBody property.

Returns nil on failure

More Information and Examples
top
QuickGetAsync (1)
quickGetAsync(url: String) -> CkoTask

Creates an asynchronous task to call the QuickGet method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
QuickGetBd
quickGetBd(url: String, binData: CkoBinData) -> Bool
Introduced in version 9.5.0.64

This function sends an HTTP GET request to a specified URL, which can include query parameters, and returns the binary response body in binData.

The HTTP response code is stored in the LastStatus property. Additional response details can be found in properties like LastResponseHeader , LastModDate , and LastContentType .

A response code of 400 or higher indicates a failure. If the error response is text-based and the KeepResponseBody property is true, it will be available in the LastResponseBody property.

Returns true for success, false for failure.

More Information and Examples
top
QuickGetBdAsync (1)
quickGetBdAsync(url: String, binData: CkoBinData) -> CkoTask
Introduced in version 9.5.0.64

Creates an asynchronous task to call the QuickGetBd method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
QuickGetSb
quickGetSb(url: String, sbContent: CkoStringBuilder) -> Bool
Introduced in version 9.5.0.64

This function sends an HTTP GET request to a specified URL, which can include query parameters, and returns the text response body in sbContent. The existing content of sbContent, if any, is cleared and replaced with the downloaded content.

The response status code is stored in the LastStatus property. Additional response details can be found in properties like LastResponseHeader , LastModDate , and LastContentType .

If the response status code is >= 400, then this method returns false, but the body of the HTTP response is still returned in sbContent. This allows for the application to examine the response body for cases where an error is returned, but the expected content is not received.

Returns true for success, false for failure.

top
QuickGetSbAsync (1)
quickGetSbAsync(url: String, sbContent: CkoStringBuilder) -> CkoTask
Introduced in version 9.5.0.64

Creates an asynchronous task to call the QuickGetSb method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
QuickGetStr
quickGetStr(url: String) -> String

This function sends an HTTP GET request to a specified URL, which can include query parameters, and returns the text response body.

The response status code is stored in the LastStatus property. Additional response details can be found in properties like LastResponseHeader , LastModDate , and LastContentType .

A response code of 400 or higher indicates a failure. If the error response is text-based and the KeepResponseBody property is true, it will be available in the LastResponseBody property.

Returns nil on failure

top
QuickGetStrAsync (1)
quickGetStrAsync(url: String) -> CkoTask

Creates an asynchronous task to call the QuickGetStr method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
RemoveRequestHeader
removeRequestHeader(name: String)

Eliminates a header field from being included in all HTTP requests, except for those sent by the HttpReq and HttpSReq methods, which rely on header fields provided in an HttpRequest object via method arguments.

More Information and Examples
top
RenderGet
renderGet(url: String) -> String

Builds the GET request that would be sent if a method such as QuickGetStr was called. Instead of sending the request, it returns the HTTP request that would have been sent.

Returns nil on failure

More Information and Examples
top
ResumeDownload
resumeDownload(url: String, appendToPath: String) -> Bool

Resumes downloading content from url and saves it to a partially completed local file at targetFilename. If the file at targetFilename doesn't exist or is empty, this method functions the same as Download .

The download succeeds if the HTTP response status code is in the 200s. If unsuccessful, no output file is created. If the KeepResponseBody property is set to true, the server's error response will be available in the LastResponseBody property.

The response status code will be available in the LastStatus property.

Returns true for success, false for failure.

More Information and Examples
top
ResumeDownloadAsync (1)
resumeDownloadAsync(url: String, appendToPath: String) -> CkoTask

Creates an asynchronous task to call the ResumeDownload method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
ResumeDownloadBd
resumeDownloadBd(url: String, binData: CkoBinData) -> Bool
Introduced in version 9.5.0.75

Resumes a download from where it left off, determined by the number of bytes in binData. This method can be called multiple times until the download is complete.

The download succeeds if the HTTP response status code is in the 200s. If unsuccessful, no output file is created. If the KeepResponseBody property is set to true, the server's error response will be available in the LastResponseBody property.

The response status code will be available in the LastStatus property.

Returns true for success, false for failure.

More Information and Examples
top
ResumeDownloadBdAsync (1)
resumeDownloadBdAsync(url: String, binData: CkoBinData) -> CkoTask
Introduced in version 9.5.0.75

Creates an asynchronous task to call the ResumeDownloadBd method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
S3_CreateBucket
s3_CreateBucket(bucketName: String) -> Bool

Creates a new Amazon S3 bucket.

Note: You can add x-amz-* headers, including metadata, to any S3 request by using SetRequestHeader for each header. This applies to all S3 methods, even if not explicitly mentioned.

Returns true for success, false for failure.

More Information and Examples
top
S3_CreateBucketAsync (1)
s3_CreateBucketAsync(bucketName: String) -> CkoTask

Creates an asynchronous task to call the S3_CreateBucket method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
S3_DeleteBucket
s3_DeleteBucket(bucketName: String) -> Bool

Deletes an Amazon S3 bucket.

Note: Ensure the AwsEndpoint property is set to the correct region if the bucket is outside us-east-1, for example, eu-central-1. For S3-compatible services like Wasabi, always set the AwsEndpoint , such as s3.wasabisys.com or s3.eu-central-1.wasabisys.com.

Returns true for success, false for failure.

More Information and Examples
top
S3_DeleteBucketAsync (1)
s3_DeleteBucketAsync(bucketName: String) -> CkoTask

Creates an asynchronous task to call the S3_DeleteBucket method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
S3_DeleteObject
s3_DeleteObject(bucketName: String, objectName: String) -> Bool

Deletes a remote file (object) on the Amazon S3 service.

Returns true for success, false for failure.

More Information and Examples
top
S3_DeleteObjectAsync (1)
s3_DeleteObjectAsync(bucketName: String, objectName: String) -> CkoTask

Creates an asynchronous task to call the S3_DeleteObject method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
S3_DeleteObjects
s3_DeleteObjects(bucketName: String, objectNames: CkoStringTable, jsonResponse: CkoJsonObject) -> Bool
Introduced in version 11.0.0

Deletes several objects from a bucket with a single request. objectNames includes the object names (or keys) to be deleted. To delete a specific object version, add a versionId to the object name, like this: SampleDocument.txt; VersionId=OYcLXagmS.WaD..oyH4KRguB95_YhLs7. If successful, jsonResponse will contain the JSON response.

Returns true for success, false for failure.

More Information and Examples
top
S3_DeleteObjectsAsync (1)
s3_DeleteObjectsAsync(bucketName: String, objectNames: CkoStringTable, jsonResponse: CkoJsonObject) -> CkoTask
Introduced in version 11.0.0

Creates an asynchronous task to call the S3_DeleteObjects method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
S3_DownloadBd
s3_DownloadBd(bucketPath: String, objectName: String, bd: CkoBinData) -> Bool
Introduced in version 9.5.0.76

Downloads a file from the Amazon S3 service into bd.

Returns true for success, false for failure.

More Information and Examples
top
S3_DownloadBdAsync (1)
s3_DownloadBdAsync(bucketPath: String, objectName: String, bd: CkoBinData) -> CkoTask
Introduced in version 9.5.0.76

Creates an asynchronous task to call the S3_DownloadBd method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
S3_DownloadBytes
s3_DownloadBytes(bucketName: String, objectName: String) -> NSData

Downloads a file from the Amazon S3 service and returns the binary data.

Returns nil on failure

More Information and Examples
top
S3_DownloadBytesAsync (1)
s3_DownloadBytesAsync(bucketName: String, objectName: String) -> CkoTask

Creates an asynchronous task to call the S3_DownloadBytes method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
S3_DownloadFile
s3_DownloadFile(bucketName: String, objectName: String, localFilePath: String) -> Bool

Downloads a file from the Amazon S3 service.

Note: Ensure the AwsEndpoint property is set to the correct region if the bucket is outside us-east-1, for example, eu-central-1. For S3-compatible services like Wasabi, always set the AwsEndpoint , such as s3.wasabisys.com or s3.eu-central-1.wasabisys.com.

Returns true for success, false for failure.

More Information and Examples
top
S3_DownloadFileAsync (1)
s3_DownloadFileAsync(bucketName: String, objectName: String, localFilePath: String) -> CkoTask

Creates an asynchronous task to call the S3_DownloadFile method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
S3_DownloadString
s3_DownloadString(bucketName: String, objectName: String, charset: String) -> String

Downloads a text file (object) from the Amazon S3 service and returns the content as a string. The charset specifies the character encoding, such as utf-8, of the remote text object.

Note: Ensure the AwsEndpoint property is set to the correct region if the bucket is outside us-east-1, for example, eu-central-1. For S3-compatible services like Wasabi, always set the AwsEndpoint , such as s3.wasabisys.com or s3.eu-central-1.wasabisys.com.

Returns nil on failure

More Information and Examples
top
S3_DownloadStringAsync (1)
s3_DownloadStringAsync(bucketName: String, objectName: String, charset: String) -> CkoTask

Creates an asynchronous task to call the S3_DownloadString method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
S3_FileExists
s3_FileExists(bucketName: String, objectName: String) -> Int

Checks the existence of a remote file, returning:

  • 1 if the file exists
  • 0 if the file does not exist
  • -1 if the check failed
  • 2 if in asynchronous mode, indicating the background task started successfully

Note: Ensure the AwsEndpoint property is set to the correct region if the bucket is outside us-east-1, for example, eu-central-1. For S3-compatible services like Wasabi, always set the AwsEndpoint , such as s3.wasabisys.com or s3.eu-central-1.wasabisys.com.

top
S3_FileExistsAsync (1)
s3_FileExistsAsync(bucketName: String, objectName: String) -> CkoTask

Creates an asynchronous task to call the S3_FileExists method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
S3_GenPresignedUrl
s3_GenPresignedUrl(httpVerb: String, useHttps: Bool, bucketName: String, path: String, numSecondsValid: Int, awsService: String) -> String
Introduced in version 9.5.0.83

This method generates a temporary pre-signed URL for Amazon S3. Before calling this method, ensure the following properties are set to valid values: AwsSecretKey , AwsAccessKey , and AwsRegion . If the endpoint differs from s3.amazonaws.com, set the AwsEndpoint property accordingly.

httpVerb is the HTTP verb (e.g., GET, PUT, POST, DELETE). awsService is the name of the AWS service (e.g., s3, s3-accelerate). If useHttps is true, the returned URL will start with https://; otherwise, it will start with http://.

The generated URL has this format:

https://<AwsEndpoint>/<bucket_name>/<path>
?X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=<AwsAccessKey>/<currentDate>/<AwsRegion>/<awsService>/aws4_request
&X-Amz-Date=<currentDateTime>
&X-Amz-Expires=<numSecondsValid>
&X-Amz-SignedHeaders=host
&X-Amz-Signature=<signature-value>  

Returns nil on failure

top
S3_ListBucketObjects
s3_ListBucketObjects(bucketName: String) -> String

Retrieve an XML-formatted list of objects in an Amazon S3 bucket, similar to a directory listing.

bucketPath can include URL-encoded parameters. For example, to list objects in a bucket named ChilkatABC with a max-keys value of 2000 and a marker of xyz, pass the following string as bucketPath to the S3_ListBucketObjects method: ChilkatABC?max-keys=2000&marker=xyz

This method recognizes all parameters listed in the AWS documentation for bucket object listing: delimiter, marker, max-keys, and prefix. For further details, refer to Amazon's AWS online documentation.

Returns nil on failure

More Information and Examples
top
S3_ListBucketObjectsAsync (1)
s3_ListBucketObjectsAsync(bucketName: String) -> CkoTask

Creates an asynchronous task to call the S3_ListBucketObjects method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
S3_ListBuckets
s3_ListBuckets() -> String

Retrieves the XML listing of the buckets for an Amazon S3 account.

Returns nil on failure

More Information and Examples
top
S3_ListBucketsAsync (1)
s3_ListBucketsAsync() -> CkoTask

Creates an asynchronous task to call the S3_ListBuckets method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
S3_UploadBd
s3_UploadBd(bd: CkoBinData, contentType: String, bucketPath: String, objectName: String) -> Bool
Introduced in version 9.5.0.76

Uploads the contents of bd as a file to the Amazon S3 service.

Note: x-amz-* headers, including metadata, can be added to any S3 request by adding each header with a call to SetRequestHeader . This applies to all S3 methods, even if not explicitly stated.

Note: Ensure the AwsEndpoint property is set to the correct region if the bucket is outside us-east-1, for example, eu-central-1. For S3-compatible services like Wasabi, always set the AwsEndpoint , such as s3.wasabisys.com or s3.eu-central-1.wasabisys.com.

Returns true for success, false for failure.

More Information and Examples
top
S3_UploadBdAsync (1)
s3_UploadBdAsync(bd: CkoBinData, contentType: String, bucketPath: String, objectName: String) -> CkoTask
Introduced in version 9.5.0.76

Creates an asynchronous task to call the S3_UploadBd method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
S3_UploadBytes
s3_UploadBytes(objectContent: NSData, contentType: String, bucketName: String, objectName: String) -> Bool

Uploads the contents of contentBytes as a file to the Amazon S3 service.

Note: x-amz-* headers, including metadata, can be added to any S3 request by adding each header with a call to SetRequestHeader . This applies to all S3 methods, even if not explicitly stated.

Note: Ensure the AwsEndpoint property is set to the correct region if the bucket is outside us-east-1, for example, eu-central-1. For S3-compatible services like Wasabi, always set the AwsEndpoint , such as s3.wasabisys.com or s3.eu-central-1.wasabisys.com.

Returns true for success, false for failure.

More Information and Examples
top
S3_UploadBytesAsync (1)
s3_UploadBytesAsync(objectContent: NSData, contentType: String, bucketName: String, objectName: String) -> CkoTask

Creates an asynchronous task to call the S3_UploadBytes method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
S3_UploadFile
s3_UploadFile(localFilePath: String, contentType: String, bucketName: String, objectName: String) -> Bool

Uploads a file to the Amazon S3 service.

Note: x-amz-* headers, including metadata, can be added to any S3 request by adding each header with a call to SetRequestHeader . This applies to all S3 methods, even if not explicitly stated.

Note: Ensure the AwsEndpoint property is set to the correct region if the bucket is outside us-east-1, for example, eu-central-1. For S3-compatible services like Wasabi, always set the AwsEndpoint , such as s3.wasabisys.com or s3.eu-central-1.wasabisys.com.

Returns true for success, false for failure.

More Information and Examples
top
S3_UploadFileAsync (1)
s3_UploadFileAsync(localFilePath: String, contentType: String, bucketName: String, objectName: String) -> CkoTask

Creates an asynchronous task to call the S3_UploadFile method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
S3_UploadString
s3_UploadString(objectContent: String, charset: String, contentType: String, bucketName: String, objectName: String) -> Bool

Uploads the content of objectContent as a file to Amazon S3. charset specifies the string's character encoding (byte representation).

Note: x-amz-* headers, including metadata, can be added to any S3 request by adding each header with a call to SetRequestHeader . This applies to all S3 methods, even if not explicitly stated.

Note: Ensure the AwsEndpoint property is set to the correct region if the bucket is outside us-east-1, for example, eu-central-1. For S3-compatible services like Wasabi, always set the AwsEndpoint , such as s3.wasabisys.com or s3.eu-central-1.wasabisys.com.

Returns true for success, false for failure.

More Information and Examples
top
S3_UploadStringAsync (1)
s3_UploadStringAsync(objectContent: String, charset: String, contentType: String, bucketName: String, objectName: String) -> CkoTask

Creates an asynchronous task to call the S3_UploadString method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
SetAuthPrivateKey
setAuthPrivateKey(publicKeyId: String, privKey: CkoPrivateKey) -> Bool
Introduced in version 9.5.0.89

Sets the private key to be used with some forms of authentication. Starting in v9.5.0.89, this is used automatically add the Authorization header (Signature) for Amazon Pay requests.

Returns true for success, false for failure.

More Information and Examples
top
SetAuthTokenSb
setAuthTokenSb(sb: CkoStringBuilder) -> Bool
Introduced in version 9.5.0.95

Sets the AuthToken property. The sb contains the OAuth2 access token to be used.

Returns true for success, false for failure.

top
SetCookieXml
setCookieXml(domain: String, cookieXml: String) -> Bool

Restores cookies for a particular domain. It is assumed that the cookie XML was previously retrieved via the GetCookieXml method, and saved to some sort of persistent storage, such as within a database table. It is then possible for an application to restore the cookies by calling this method.

Returns true for success, false for failure.

top
SetOAuthRsaKey
setOAuthRsaKey(privKey: CkoPrivateKey) -> Bool
Introduced in version 9.5.0.39

Sets the RSA key to be used with OAuth authentication when the RSA-SHA1 OAuth signature method is used (see the OAuthSigMethod property).

Returns true for success, false for failure.

top
SetRequestHeader
setRequestHeader(name: String, value: String)

Adds a header field to be included in all HTTP requests, except for those sent by the HttpReq and HttpSReq methods, which rely on header fields provided in an HttpRequest object via method arguments. If the header field already exists, it is replaced.

Use the RemoveRequestHeader method to delete a specific header. Setting a header field to an empty string will also remove it, unless the AllowEmptyHeaders option in UncommonOptions is used.

Avoid setting the Authorization header manually. Instead, use the appropriate authorization properties such as Password , AuthToken , AuthSignature , BasicAuth , DigestAuth , NtlmAuth , OAuth1 , OAuthToken , etc.

To add cookies, use the Cookie header field format: Cookie: name1=value1; name2=value2; name3=value3.

Do not manually set the Content-Length header. Chilkat will automatically calculate and include Content-Length when sending the HTTP request.

top
SetSecurePassword
setPassword(password: CkoSecureString) -> Bool
Introduced in version 9.5.0.76

Equivalent to setting the Password property, but provides for a more secure way of passing the password in a secure string object.

Returns true for success, false for failure.

top
SetSslCertRequirement
setSslCertRequirement(reqName: String, reqValue: String)
Introduced in version 9.5.0.84

Enforces a requirement on the server's certificate. The reqName can be one of the following:

  • SubjectDN
  • SubjectCN
  • IssuerDN
  • IssuerCN
  • SAN

The reqName specifies the part of the certificate, and the reqValue is the value that it must match exactly or with a wildcard (*), for example "*.example.com". If the server's certificate does not match, the SSL / TLS connection is aborted.

Returns true for success, false for failure.

More Information and Examples
top
SetSslClientCert
setSslClientCert(cert: CkoCert) -> Bool

Allows for a client-side certificate to be used for an SSL connection.

Returns true for success, false for failure.

top
SetSslClientCertPem
setSslClientCertPem(pemDataOrPath: String, pemPassword: String) -> Bool

Allows for a client-side certificate + private key to be used for the SSL / TLS connection (often called 2-way SSL).

Returns true for success, false for failure.

top
SetSslClientCertPfx
setSslClientCertPfx(pfxPath: String, pfxPassword: String) -> Bool

Allows for a client-side certificate + private key to be used for the SSL / TLS connection (often called 2-way SSL).

Returns true for success, false for failure.

top
SetUrlVar
setUrlVar(name: String, value: String) -> Bool
Introduced in version 9.5.0.67

Sets a variable's value for URL substitutions used in any method. Variables are formatted as {$varName} in URLs, such as: https://graph.microsoft.com/v1.0/users/{$id}.

Call ClearUrlVars to unset all URL variables.

Returns true for success, false for failure.

More Information and Examples
top
SharePointOnlineAuth
sharePointOnlineAuth(siteUrl: String, username: String, password: CkoSecureString, extraInfo: CkoJsonObject) -> Bool
Introduced in version 9.5.0.73

Authenticates with SharePoint Online, resulting in a cookie being set and used for subsequent SharePoint HTTP requests. Prior to calling this method, an application should set the CookieDir property to either memory or a directory path to persist the SharePoint authentication cookie to be automatically used in subsequent runs.

This method has the side-effect of setting the SaveCookies and SendCookies properties to true, because these settings are required for SharePoint Online authentication.

The siteUrl is a URL such as https://yourdomain.sharepoint.com/. The username is an email address such as username@yourdomain.com. The extraInfo is reserved for providing additional information as needed in the future.

Returns true for success, false for failure.

More Information and Examples
top
SharePointOnlineAuthAsync (1)
sharePointOnlineAuthAsync(siteUrl: String, username: String, password: CkoSecureString, extraInfo: CkoJsonObject) -> CkoTask
Introduced in version 9.5.0.73

Creates an asynchronous task to call the SharePointOnlineAuth method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
SleepMs
sleepMs(millisec: Int)

Convenience method to force the calling process to sleep for a number of milliseconds.

top
UrlDecode
urlDecode(str: String) -> String

URL decodes a string.

Returns nil on failure

top
UrlEncode
urlEncode(str: String) -> String

URL encodes a string.

Returns nil on failure

top
VerifyTimestampReply
verifyTimestampReply(timestampReply: CkoBinData, tsaCert: CkoCert) -> Int
Introduced in version 9.5.0.75

Verifies a timestamp reply received from a timestamp authority (TSA). Returns the following possible integer values:

  • -1: The timestampReply does not contain a valid timestamp reply.
  • -2: The timestampReply is a valid timestamp reply, but failed verification using the public key of the tsaCert.
  • 0: Granted and verified.
  • 1: Granted and verified, with mods (see RFC 3161)
  • 2: Rejected.
  • 3: Waiting.
  • 4: Revocation Warning
  • 5: Revocation Notification

If the timestamp reply (timestampReply) is known to be from a trusted source, then the tsaCert may be empty. If tsaCert is empty (never loaded with a certificate), then the verification will use the certificate embedded in the timestamp reply.

The CreateTimestampRequest method is used to create a timestamp request.

top

Events

To implement an event callback, your application would define and implement a class that inherits from CkoHttpProgress. Your application can implement methods to override some or all of the default/empty method implementations of the CkoHttpProgress base class.

For example:

class MyHttpProgress : CkoHttpProgress {

    override func ProgressInfo(name: String!, value: String!) {
        // application code goes here...
        print(name + ": " + value)
    }

    override func AbortCheck(abort: UnsafeMutablePointer) {
        // application code goes here...
        // To abort the operation, set this equal to true instead of false.
        abort.memory = false
    }

    override func PercentDone(pctDone: NSNumber!, abort: UnsafeMutablePointer) {
        // application code goes here...
        print(pctDone)
        // To abort the operation, set this equal to true instead of false.
        abort.memory = false
    }

    // For asynchronous method calls.
    override func TaskCompleted(task: CkoTask!) {
        // application code goes here...
    }
}

func someAppFunction() {

    // Demonstrate how to set the event callback object...
    let http = CkoHttp()
    let myHttpProgress = MyHttpProgress()
    
    http.setEventCallbackObject(myHttpProgress)

    // ...
    // ...
    // ...
}

AbortCheck
abortCheck(abort: Bool)

Enables a method call to be aborted by triggering the AbortCheck event at intervals defined by the HeartbeatMs property. If HeartbeatMs is set to its default value of 0, no events will occur. For instance, set HeartbeatMs to 200 to trigger 5 AbortCheck events per second.

More Information and Examples
top
PercentDone
percentDone(pctDone: Int, abort: Bool)

This provides the percentage completion for any method involving network communications or time-consuming processing, assuming the progress can be measured as a percentage. This event is triggered only when it's possible and logical to express the operation's progress as a percentage. The pctDone argument will range from 1 to 100. For methods that finish quickly, the number of PercentDone callbacks may vary, but the final callback will have pctDone equal to 100. For longer operations, callbacks will not exceed one per percentage point (e.g., 1, 2, 3, ..., 98, 99, 100).

The PercentDone callback also acts as an AbortCheck event. For fast methods where PercentDone fires, an AbortCheck event may not trigger since the PercentDone callback already provides an opportunity to abort. For longer operations, where time between PercentDone callbacks is extended, AbortCheck callbacks enable more responsive operation termination.

To abort the operation, set the abort output argument to true. This will cause the method to terminate and return a failure status or corresponding failure value.

More Information and Examples
top
ProgressInfo
progressInfo(name: String, value: String)

This event callback provides tag name/value pairs that detail what occurs during a method call. To discover existing tag names, create code to handle the event, emit the pairs, and review them. Most tag names are self-explanatory.

More Information and Examples
top
TaskCompleted
taskCompleted(task: CkoTask)

Called from the background thread when an asynchronous task completes.

top

Deprecated

GetHead
getHead(url: String) -> CkoHttpResponse
This method is deprecated and replaced by HttpNoBody

Applications should instead call HttpNoBody.

Sends an HTTP HEAD request for a URL and returns a response object. (Note: HEAD requests will never automatically follow redirects.)

Returns nil on failure

top
GetHeadAsync (1) (2)
getHeadAsync(url: String) -> CkoTask
This method is deprecated and replaced by HttpNoBody

Creates an asynchronous task to call the GetHead method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
GetServerSslCert
getServerSslCert(domain: String, port: Int) -> CkoCert
This method is deprecated and replaced by GetServerCert

Applications should instead call GetServerCert.

Initiates an SSL/TLS connection with a web server to obtain its SSL certificate (public key only). No data is retrieved from the web server; the method only connects, retrieves the certificate information, and then disconnects.

Returns nil on failure

top
GetServerSslCertAsync (1) (2)
getServerSslCertAsync(domain: String, port: Int) -> CkoTask
This method is deprecated and replaced by GetServerCert

Creates an asynchronous task to call the GetServerSslCert method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
LastJsonData
lastJsonData() -> CkoJsonObject
Introduced in version 9.5.0.79
This method is deprecated.

This method is deprecated. Call GetLastJsonData instead.

Provides information about what transpired in the last method called on this object instance. For many methods, there is no information. However, for some methods, details about what occurred can be obtained by getting the LastJsonData right after the method call returns.

Returns nil on failure

top
PBinary
pBinary(verb: String, url: String, byteData: NSData, contentType: String, md5: Bool, gzip: Bool) -> CkoHttpResponse
Introduced in version 9.5.0.45
This method is deprecated and replaced by HttpBinary

Sends an HTTP request to the url. The verb can be POST, PUT, PATCH, etc. The body of the HTTP request contains the bytes passed in byteData. The contentType is a content type such as image/gif, application/pdf, etc. If md5 is true, then a Content-MD5 header is added with the base64 MD5 hash of the byteData. Servers aware of the Content-MD5 header will perform a message integrity check to ensure that the data has not been corrupted. If gzip is true, the byteData is compressed using the gzip algorithm. The HTTP request body will contain the GZIP compressed data, and a Content-Encoding: gzip header is automatically added to indicate that the request data needs to be ungzipped when received (at the server).

Returns nil on failure

top
PBinaryAsync (1) (2)
pBinaryAsync(verb: String, url: String, byteData: NSData, contentType: String, md5: Bool, gzip: Bool) -> CkoTask
Introduced in version 9.5.0.45
This method is deprecated and replaced by HttpBinary

Creates an asynchronous task to call the PBinary method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
PBinaryBd
pBinaryBd(verb: String, url: String, data: CkoBinData, contentType: String, md5: Bool, gzip: Bool) -> CkoHttpResponse
Introduced in version 9.5.0.69
This method is deprecated and replaced by HttpBd

Applications should instead call HttpBd.

The same as PBinary, but the data to be uploaded is passed in data.

Returns nil on failure

top
PBinaryBdAsync (1) (2)
pBinaryBdAsync(verb: String, url: String, data: CkoBinData, contentType: String, md5: Bool, gzip: Bool) -> CkoTask
Introduced in version 9.5.0.69
This method is deprecated and replaced by HttpBd

Creates an asynchronous task to call the PBinaryBd method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
PFile
pFile(verb: String, url: String, localFilePath: String, contentType: String, md5: Bool, gzip: Bool) -> CkoHttpResponse
Introduced in version 9.5.0.83
This method is deprecated and replaced by HttpFile

Applications should instead call HttpFile.

Sends an HTTP/HTTPS request to the url. The verb can be POST, PUT, PATCH, etc. The url can begin with http:// or https:// depending if TLS is desired. The body of the HTTP request is streamed directly from the localFilePath. The contentType is a content type such as image/gif, application/pdf, text/xml, etc. If md5 is true, then a Content-MD5 header is added with the base64 MD5 hash of the localFilePath. Servers aware of the Content-MD5 header will perform a message integrity check to ensure that the data has not been corrupted. If gzip is true, the localFilePath is compressed using the gzip algorithm. The HTTP request body will contain the GZIP compressed data, and a Content-Encoding: gzip header is automatically added to indicate that the request data needs to be ungzipped when received (at the server).

Returns nil on failure

top
PFileAsync (1) (2)
pFileAsync(verb: String, url: String, localFilePath: String, contentType: String, md5: Bool, gzip: Bool) -> CkoTask
Introduced in version 9.5.0.83
This method is deprecated and replaced by HttpFile

Creates an asynchronous task to call the PFile method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
PostBinary
postBinary(url: String, byteData: NSData, contentType: String, md5: Bool, gzip: Bool) -> String
This method is deprecated and replaced by HttpBinary

Sends an HTTP POST request to the url. The body of the HTTP request contains the bytes passed in byteData. The contentType is a content type such as image/gif, application/pdf, etc. If md5 is true, then a Content-MD5 header is added with the base64 MD5 hash of the byteData. Servers aware of the Content-MD5 header will perform a message integrity check to ensure that the data has not been corrupted. If gzip is true, the byteData is compressed using the gzip algorithm. The HTTP request body will contain the GZIP compressed data, and a Content-Encoding: gzip header is automatically added to indicate that the request data needs to be ungzipped when received (at the server).

Returns the text body of the HTTP response if the HTTP response has a success status code. Otherwise the method is considered to have failed. If more details of the HTTP response are required, call PBinary instead (which returns the HTTP response object).

Note: The HTTP response code is available in the LastStatus property. Other properties having information include LastResponseHeader, LastResponseBody, LastModDate, LastContentType, etc.

Returns nil on failure

top
PostBinaryAsync (1)
postBinaryAsync(url: String, byteData: NSData, contentType: String, md5: Bool, gzip: Bool) -> CkoTask
This method is deprecated and replaced by HttpBinary

Creates an asynchronous task to call the PostBinary method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
PostJson
postJson(url: String, jsonText: String) -> CkoHttpResponse
This method is deprecated and replaced by HttpStr

Applications should instead call HttpStr.

A simplified way of sending a JSON POST and receiving the JSON response. The HTTP response is returned in an HTTP response object. The content type of the HTTP request is application/json. To send a JSON POST using a different content-type, call the PostJson2 method where the content type can be explicitly specified.

Returns nil on failure

top
PostJsonAsync (1) (2)
postJsonAsync(url: String, jsonText: String) -> CkoTask
This method is deprecated and replaced by HttpStr

Creates an asynchronous task to call the PostJson method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
PostJson2
postJson2(url: String, contentType: String, jsonText: String) -> CkoHttpResponse
This method is deprecated and replaced by HttpStr

Applications should instead call HttpStr.

The same as PostJson,except it allows for the content type to be explicitly provided. The PostJson method automatically uses application/jsonrequest. If the application needs for the content type to be application/json, or some other content type, then PostJson2 provides the means.

Returns nil on failure

top
PostJson2Async (1) (2)
postJson2Async(url: String, contentType: String, jsonText: String) -> CkoTask
This method is deprecated and replaced by HttpStr

Creates an asynchronous task to call the PostJson2 method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
PostJson3
postJson3(url: String, contentType: String, json: CkoJsonObject) -> CkoHttpResponse
Introduced in version 9.5.0.68
This method is deprecated and replaced by HttpJson

Applications should instead call HttpJson.

The same as PostJson2,except a JSON object is passed in for the request body.

Returns nil on failure

top
PostJson3Async (1) (2)
postJson3Async(url: String, contentType: String, json: CkoJsonObject) -> CkoTask
Introduced in version 9.5.0.68
This method is deprecated and replaced by HttpJson

Creates an asynchronous task to call the PostJson3 method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
PostUrlEncoded
postUrlEncoded(url: String, req: CkoHttpRequest) -> CkoHttpResponse
This method is deprecated and replaced by HttpReq

Sends a simple URL encoded POST. The form parameters are sent in the body of the HTTP request in x-www-form-urlencoded format. The content-type is application/x-www-form-urlencoded.

Returns nil on failure

top
PostUrlEncodedAsync (1) (2)
postUrlEncodedAsync(url: String, req: CkoHttpRequest) -> CkoTask
This method is deprecated and replaced by HttpReq

Creates an asynchronous task to call the PostUrlEncoded method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
PostXml
postXml(url: String, xmlDoc: String, charset: String) -> CkoHttpResponse
This method is deprecated and replaced by HttpStr

Applications should instead call HttpStr.

A simplified way of posting XML content to a web server. This method is good for making SOAP calls using HTTP POST. The xmlCharset should match the character encoding used in the xmlContent, which is typically utf-8. The HTTP response is returned in an HTTP response object.

Important: This method sends the POST with a Content-Type header value of application/xml. In rare cases, a server might require the Content-Type header to be text/xml. To use text/xml instead of the default application/xml, call SetRequestHeader(Content-Type,text/xml) prior to calling this method.

To use HTTPS simply pass an endpointUrl beginning with https:// instead of http://. This applies to any Chilkat method where a URL is passed as an argument.

Returns nil on failure

top
PostXmlAsync (1) (2)
postXmlAsync(url: String, xmlDoc: String, charset: String) -> CkoTask
This method is deprecated and replaced by HttpStr

Creates an asynchronous task to call the PostXml method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
PText
pText(verb: String, url: String, textData: String, charset: String, contentType: String, md5: Bool, gzip: Bool) -> CkoHttpResponse
Introduced in version 9.5.0.46
This method is deprecated and replaced by HttpStr

Applications should instead call HttpStr.

Sends an HTTP request to the url. The verb can be POST, PUT, PATCH, etc. The body of the HTTP request contains the text passed in textData. The contentType is a content type such as text/xml, application/json, etc. If md5 is true, then a Content-MD5 header is added with the base64 MD5 hash of the textData. Servers aware of the Content-MD5 header will perform a message integrity check to ensure that the data has not been corrupted. If gzip is true, the contentType is compressed using the gzip algorithm. The HTTP request body will contain the GZIP compressed data, and a Content-Encoding: gzip header is automatically added to indicate that the request data needs to be ungzipped when received (at the server).

Returns nil on failure

top
PTextAsync (1) (2)
pTextAsync(verb: String, url: String, textData: String, charset: String, contentType: String, md5: Bool, gzip: Bool) -> CkoTask
Introduced in version 9.5.0.46
This method is deprecated and replaced by HttpStr

Creates an asynchronous task to call the PText method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
PTextSb
pTextSb(verb: String, url: String, textData: CkoStringBuilder, charset: String, contentType: String, md5: Bool, gzip: Bool) -> CkoHttpResponse
Introduced in version 9.5.0.69
This method is deprecated and replaced by HttpSb

Applications should instead call HttpSb.

The same as PText, but the data to be uploaded is passed in textData.

Returns nil on failure

top
PTextSbAsync (1) (2)
pTextSbAsync(verb: String, url: String, textData: CkoStringBuilder, charset: String, contentType: String, md5: Bool, gzip: Bool) -> CkoTask
Introduced in version 9.5.0.69
This method is deprecated and replaced by HttpSb

Creates an asynchronous task to call the PTextSb method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
PutBinary
putBinary(url: String, byteData: NSData, contentType: String, md5: Bool, gzip: Bool) -> String
This method is deprecated and replaced by HttpBinary

Sends an HTTP PUT request to the url. The body of the HTTP request is byteData. The contentType is a content type such as image/gif, application/pdf, etc. If md5 is true, then a Content-MD5 header is added with the base64 MD5 hash of the byteData. Servers aware of the Content-MD5 header will perform a message integrity check to ensure that the data has not been corrupted. If gzip is true, the byteData is compressed using the gzip algorithm. The HTTP request body will contain the GZIP compressed data, and a Content-Encoding: gzip header is automatically added to indicate that the request data needs to be ungzipped when received (at the server).

Returns the text body of the HTTP response if the HTTP response has a success status code. Otherwise the method is considered to have failed. If more details of the HTTP response are required, call PBinary instead (which returns the HTTP response object).

Returns nil on failure

top
PutBinaryAsync (1)
putBinaryAsync(url: String, byteData: NSData, contentType: String, md5: Bool, gzip: Bool) -> CkoTask
This method is deprecated and replaced by HttpBinary

Creates an asynchronous task to call the PutBinary method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
PutText
putText(url: String, textData: String, charset: String, contentType: String, md5: Bool, gzip: Bool) -> String
This method is deprecated and replaced by HttpStr

Sends an HTTP PUT request to the url. The body of the HTTP request is textData. The charset should be set to a charset name such as iso-8859-1, windows-1252, Shift_JIS, utf-8, etc. The string ansi may also be used as a charset name. The contentType is a content type such as text/plain, text/xml, etc. If md5 is true, then a Content-MD5 header is added with the base64 MD5 hash of the textData. Servers aware of the Content-MD5 header will perform a message integrity check to ensure that the data has not been corrupted. If gzip is true, the textData is compressed using the gzip algorithm. The HTTP request body will contain the GZIP compressed data, and a Content-Encoding: gzip header is automatically added to indicate that the request data needs to be ungzipped when received (at the server).

Returns the text body of the HTTP response if the HTTP response has a success status code. Otherwise the method is considered to have failed. If more details of the HTTP response are required, call PText instead (which returns the HTTP response object).

Returns nil on failure

top
PutTextAsync (1)
putTextAsync(url: String, textData: String, charset: String, contentType: String, md5: Bool, gzip: Bool) -> CkoTask
This method is deprecated and replaced by HttpStr

Creates an asynchronous task to call the PutText method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
QuickGetObj
quickGetObj(url: String) -> CkoHttpResponse
This method is deprecated and replaced by HttpNoBody

Applications should instead call HttpNoBody.

Sends an HTTP GET request for a URL and returns the response object. If the SendCookies property is true, matching cookies previously persisted to the CookiesDir are automatically included in the request. If the FetchFromCache property is true, the page could be fetched directly from cache.

Returns nil on failure

top
QuickGetObjAsync (1) (2)
quickGetObjAsync(url: String) -> CkoTask
This method is deprecated and replaced by HttpNoBody

Creates an asynchronous task to call the QuickGetObj method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
QuickPutStr
quickPutStr(url: String) -> String
This method is deprecated and replaced by HttpNoBody

Same as QuickGetStr, but uses the HTTP PUT method instead of the GET method.

Note: The HTTP response code is available in the LastStatus property. Other properties having information include LastResponseHeader, LastResponseBody, LastModDate, LastContentType, etc.

Returns nil on failure

top
QuickPutStrAsync (1)
quickPutStrAsync(url: String) -> CkoTask
This method is deprecated and replaced by HttpNoBody

Creates an asynchronous task to call the QuickPutStr method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
QuickRequest
quickRequest(verb: String, url: String) -> CkoHttpResponse
Introduced in version 9.5.0.77
This method is deprecated and replaced by HttpNoBody

Applications should instead call HttpNoBody.

Sends an HTTP request with no body for a URL and returns the response object. The verb is typically GET or DELETE.

If the SendCookies property is true, matching cookies previously persisted to the CookiesDir are automatically included in the request. If the FetchFromCache property is true, the page could be fetched directly from cache.

Returns nil on failure

top
QuickRequestAsync (1) (2)
quickRequestAsync(verb: String, url: String) -> CkoTask
Introduced in version 9.5.0.77
This method is deprecated and replaced by HttpNoBody

Creates an asynchronous task to call the QuickRequest method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
QuickRequestParams
quickRequestParams(verb: String, url: String, json: CkoJsonObject) -> CkoHttpResponse
Introduced in version 9.5.0.89
This method is deprecated and replaced by HttpParams

Applications should instead call HttpParams.

This is the same as the QuickRequest method, except query params can be provided as non-URL-encoded name/value members in the json.

Returns nil on failure

top
QuickRequestParamsAsync (1) (2)
quickRequestParamsAsync(verb: String, url: String, json: CkoJsonObject) -> CkoTask
Introduced in version 9.5.0.89
This method is deprecated and replaced by HttpParams

Creates an asynchronous task to call the QuickRequestParams method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
S3_DeleteMultipleObjects
s3_DeleteMultipleObjects(bucketName: String, objectNames: CkoStringArray) -> CkoHttpResponse
Introduced in version 9.5.0.47
This method is deprecated and replaced by S3_DeleteObjects

Applications should instead call S3_DeleteObjects.

Deletes multiple objects from a bucket using a single HTTP request. The objectNames contains the names (also known as keys) of the objects to be deleted. To delete a specific version of an object, append a versionId attribute to the object name. For example: SampleDocument.txt; VersionId=OYcLXagmS.WaD..oyH4KRguB95_YhLs7

Returns nil on failure

top
S3_DeleteMultipleObjectsAsync (1) (2)
s3_DeleteMultipleObjectsAsync(bucketName: String, objectNames: CkoStringArray) -> CkoTask
Introduced in version 9.5.0.47
This method is deprecated and replaced by S3_DeleteObjects

Creates an asynchronous task to call the S3_DeleteMultipleObjects method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
S3_GenerateUrl
s3_GenerateUrl(bucket: String, path: String, expire: CkoDateTime) -> String
Introduced in version 9.5.0.46
This method is deprecated and replaced by S3_GenPresignedUrl

This method creates a temporary pre-signed URL for Amazon S3 using AWS Signature V2. Ensure that valid values are set for AwsSecretKey and AwsAccessKey before calling this method.

Note: This method only generates URLs for HTTP GET requests, suitable for pasting into a browser address bar. It does not support generating URLs for other request types such as POST, PUT, or DELETE.

Returns nil on failure

More Information and Examples
top
S3_GenerateUrlV4
s3_GenerateUrlV4(useHttps: Bool, bucketName: String, path: String, numSecondsValid: Int, awsService: String) -> String
Introduced in version 9.5.0.66
This method is deprecated and replaced by S3_GenPresignedUrl

This method generates a temporary pre-signed URL for Amazon S3 using AWS Signature V4. Before calling this method, ensure that the AwsSecretKey , AwsAccessKey , and AwsRegion properties are set to valid values. If your endpoint differs from s3.amazonaws.com, set the AwsEndpoint property accordingly.

awsService specifies the AWS service name, such as s3. If useHttps is true, the URL will start with https://; otherwise, it will start with http://.

Note: This method only generates URLs for HTTP GET requests, which can be used in a browser address bar. It does not support generating URLs for other request types, such as POST, PUT, or DELETE.

A pre-signed URL has this format:

https://<AwsEndpoint>/<bucket_name>/<path>
?X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=<AwsAccessKey>/<currentDate>/<AwsRegion>/<awsService>/aws4_request
&X-Amz-Date=<currentDateTime>
&X-Amz-Expires=<numSecondsValid>
&X-Amz-SignedHeaders=host
&X-Amz-Signature=<signature-value>  

Returns nil on failure

top
SynchronousRequest
synchronousRequest(domain: String, port: Int, ssl: Bool, req: CkoHttpRequest) -> CkoHttpResponse
This method is deprecated and replaced by HttpSReq

Applications should instead call HttpSReq.

Sends an explicit HttpRequest to an HTTP server and returns an HttpResponse object. The HttpResponse object provides full access to the response including all headers and the response body. This method may be used to send POST requests, as well as GET, HEAD, file uploads, and XMLHTTP. To send via HTTPS (i.e. TLS), set the ssl property = true. Otherwise set it to false.

NOTE: The 1st argument of this method is a domain, not a URL. For example, DO NOT pass https://www.somedomain.com/ in the 1st argument. Instead, pass www.somedomain.com.

The Parts of a URL

http://example.com:8042/over/there?name=ferret#nose
\__/   \______________/\_________/ \________/ \__/
 |           |            |            |        |
scheme   domain+port     path        query   fragment

Returns nil on failure

top
SynchronousRequestAsync (1) (2)
synchronousRequestAsync(domain: String, port: Int, ssl: Bool, req: CkoHttpRequest) -> CkoTask
This method is deprecated and replaced by HttpSReq

Creates an asynchronous task to call the SynchronousRequest method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
XmlRpc
xmlRpc(urlEndpoint: String, xmlIn: String) -> String
This method is deprecated and replaced by HttpStr

Makes an XML RPC call to a URL endpoint. The XML string is passed in an HTTP POST, and the XML response is returned.

Returns nil on failure

More Information and Examples
top
XmlRpcAsync (1)
xmlRpcAsync(urlEndpoint: String, xmlIn: String) -> CkoTask
This method is deprecated and replaced by HttpStr

Creates an asynchronous task to call the XmlRpc method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top
XmlRpcPut
xmlRpcPut(urlEndpoint: String, xmlIn: String) -> String
This method is deprecated and replaced by HttpStr

Same as XmlRpc, but uses the HTTP PUT method instead of the POST method.

Returns nil on failure

top
XmlRpcPutAsync (1)
xmlRpcPutAsync(urlEndpoint: String, xmlIn: String) -> CkoTask
This method is deprecated and replaced by HttpStr

Creates an asynchronous task to call the XmlRpcPut method with the arguments provided.

Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.

Returns nil on failure

top