CkHttp Ruby Reference Documentation

CkHttp

Current Version: 10.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

obj = Chilkat::CkHttp.new()

Properties

AbortCurrent
# boolVal is a boolean
boolVal = http.get_AbortCurrent();
http.put_AbortCurrent(boolVal);
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
# strVal is a string
# ckStr is a CkString
http.get_Accept(ckStr);
strVal = http.ck_accept();
http.put_Accept(strVal);

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

top
AcceptCharset
# strVal is a string
# ckStr is a CkString
http.get_AcceptCharset(ckStr);
strVal = http.acceptCharset();
http.put_AcceptCharset(strVal);

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
# strVal is a string
# ckStr is a CkString
http.get_AcceptLanguage(ckStr);
strVal = http.acceptLanguage();
http.put_AcceptLanguage(strVal);

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
# boolVal is a boolean
boolVal = http.get_AllowGzip();
http.put_AllowGzip(boolVal);

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
# boolVal is a boolean
boolVal = http.get_AllowHeaderFolding();
http.put_AllowHeaderFolding(boolVal);
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
# strVal is a string
# ckStr is a CkString
http.get_AuthSignature(ckStr);
strVal = http.authSignature();
http.put_AuthSignature(strVal);
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
# strVal is a string
# ckStr is a CkString
http.get_AuthToken(ckStr);
strVal = http.authToken();
http.put_AuthToken(strVal);
Introduced in version 9.5.0.67

If set, then automatically adds the "Authorization: Bearer " header to all requests. (If you have an OAuth2 access token, set this property equal to the OAuth2 access token string. Note: For OAuth1 (older) tokens, use the OAuthTOken property. )

top
AutoAddHostHeader
# boolVal is a boolean
boolVal = http.get_AutoAddHostHeader();
http.put_AutoAddHostHeader(boolVal);

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
# strVal is a string
# ckStr is a CkString
http.get_AwsAccessKey(ckStr);
strVal = http.awsAccessKey();
http.put_AwsAccessKey(strVal);

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

top
AwsEndpoint
# strVal is a string
# ckStr is a CkString
http.get_AwsEndpoint(ckStr);
strVal = http.awsEndpoint();
http.put_AwsEndpoint(strVal);

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
# strVal is a string
# ckStr is a CkString
http.get_AwsRegion(ckStr);
strVal = http.awsRegion();
http.put_AwsRegion(strVal);
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
# strVal is a string
# ckStr is a CkString
http.get_AwsSecretKey(ckStr);
strVal = http.awsSecretKey();
http.put_AwsSecretKey(strVal);

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

top
AwsSessionToken
# strVal is a string
# ckStr is a CkString
http.get_AwsSessionToken(ckStr);
strVal = http.awsSessionToken();
http.put_AwsSessionToken(strVal);
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
# intVal is an integer
intVal = http.get_AwsSignatureVersion();
http.put_AwsSignatureVersion(intVal);
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
# strVal is a string
# ckStr is a CkString
http.get_AwsSubResources(ckStr);
strVal = http.awsSubResources();
http.put_AwsSubResources(strVal);

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
# intVal is an integer
intVal = http.get_BandwidthThrottleDown();
http.put_BandwidthThrottleDown(intVal);
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
# intVal is an integer
intVal = http.get_BandwidthThrottleUp();
http.put_BandwidthThrottleUp(intVal);
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
# boolVal is a boolean
boolVal = http.get_BasicAuth();
http.put_BasicAuth(boolVal);

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
# strVal is a string
# ckStr is a CkString
http.get_ClientIpAddress(ckStr);
strVal = http.clientIpAddress();
http.put_ClientIpAddress(strVal);

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
# intVal is an integer
intVal = http.get_ConnectFailReason();
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
# strVal is a string
# ckStr is a CkString
http.get_Connection(ckStr);
strVal = http.connection();
http.put_Connection(strVal);

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
# intVal is an integer
intVal = http.get_ConnectTimeout();
http.put_ConnectTimeout(intVal);

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
# strVal is a string
# ckStr is a CkString
http.get_CookieDir(ckStr);
strVal = http.cookieDir();
http.put_CookieDir(strVal);

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
# strVal is a string
# ckStr is a CkString
http.get_DebugLogFilePath(ckStr);
strVal = http.debugLogFilePath();
http.put_DebugLogFilePath(strVal);

If set to a file path, causes each Chilkat method or property call to automatically append it's LastErrorText to the specified log file. The information is appended such that if a hang or crash occurs, it is possible to see the context in which the problem occurred, as well as a history of all Chilkat calls up to the point of the problem. The VerboseLogging property can be set to provide more detailed information.

This property is typically used for debugging the rare cases where a Chilkat method call hangs or generates an exception that halts program execution (i.e. crashes). A hang or crash should generally never happen. The typical causes of a hang are:

  1. a timeout related property was set to 0 to explicitly indicate that an infinite timeout is desired,
  2. the hang is actually a hang within an event callback (i.e. it is a hang within the application code), or
  3. there is an internal problem (bug) in the Chilkat code that causes the hang.

More Information and Examples
top
DefaultFreshPeriod
# intVal is an integer
intVal = http.get_DefaultFreshPeriod();
http.put_DefaultFreshPeriod(intVal);

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
# boolVal is a boolean
boolVal = http.get_DigestAuth();
http.put_DigestAuth(boolVal);

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

top
FetchFromCache
# boolVal is a boolean
boolVal = http.get_FetchFromCache();
http.put_FetchFromCache(boolVal);

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
# strVal is a string
# ckStr is a CkString
http.get_FinalRedirectUrl(ckStr);
strVal = http.finalRedirectUrl();

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
# boolVal is a boolean
boolVal = http.get_FollowRedirects();
http.put_FollowRedirects(boolVal);

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
# intVal is an integer
intVal = http.get_FreshnessAlgorithm();
http.put_FreshnessAlgorithm(intVal);

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
IgnoreMustRevalidate
# boolVal is a boolean
boolVal = http.get_IgnoreMustRevalidate();
http.put_IgnoreMustRevalidate(boolVal);

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
# boolVal is a boolean
boolVal = http.get_IgnoreNoCache();
http.put_IgnoreNoCache(boolVal);

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
# boolVal is a boolean
boolVal = http.get_KeepResponseBody();
http.put_KeepResponseBody(boolVal);
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
# strVal is a string
# ckStr is a CkString
http.get_LastContentType(ckStr);
strVal = http.lastContentType();

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

top
LastErrorHtml
# strVal is a string
# ckStr is a CkString
http.get_LastErrorHtml(ckStr);
strVal = http.lastErrorHtml();

Provides information in HTML format about the last method/property called. If a method call returns a value indicating failure, or behaves unexpectedly, examine this property to get more information.

top
LastErrorText
# strVal is a string
# ckStr is a CkString
http.get_LastErrorText(ckStr);
strVal = http.lastErrorText();

Provides information in plain-text format about the last method/property called. If a method call returns a value indicating failure, or behaves unexpectedly, examine this property to get more information.

top
LastErrorXml
# strVal is a string
# ckStr is a CkString
http.get_LastErrorXml(ckStr);
strVal = http.lastErrorXml();

Provides information in XML format about the last method/property called. If a method call returns a value indicating failure, or behaves unexpectedly, examine this property to get more information.

top
LastFromCache
# boolVal is a boolean
boolVal = http.get_LastFromCache();
Introduced in version 9.5.0.91

true if the last GET was fetched from cache.

More Information and Examples
top
LastHeader
# strVal is a string
# ckStr is a CkString
http.get_LastHeader(ckStr);
strVal = http.lastHeader();

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
# boolVal is a boolean
boolVal = http.get_LastMethodSuccess();
http.put_LastMethodSuccess(boolVal);

Indicate whether the last method call succeeded or failed. A value of true indicates success, a value of false indicates failure. This property is automatically set for method calls. It is not modified by property accesses. The property is automatically set to indicate success for the following types of method calls:

  • Any method that returns a string.
  • Any method returning a Chilkat object, binary bytes, or a date/time.
  • Any method returning a standard boolean status value where success = true and failure = false.
  • Any method returning an integer where failure is defined by a return value less than zero.

Note: Methods that do not fit the above requirements will always set this property equal to true. For example, a method that returns no value (such as a "void" in C++) will technically always succeed.

top
LastModDate
# strVal is a string
# ckStr is a CkString
http.get_LastModDate(ckStr);
strVal = http.lastModDate();

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

top
LastResponseBody
# strVal is a string
# ckStr is a CkString
http.get_LastResponseBody(ckStr);
strVal = http.lastResponseBody();
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
# strVal is a string
# ckStr is a CkString
http.get_LastResponseHeader(ckStr);
strVal = http.lastResponseHeader();

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
# intVal is an integer
intVal = http.get_LastStatus();

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
# strVal is a string
# ckStr is a CkString
http.get_LastStatusText(ckStr);
strVal = http.lastStatusText();
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
# intVal is an integer
intVal = http.get_LMFactor();
http.put_LMFactor(intVal);

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
# strVal is a string
# ckStr is a CkString
http.get_Login(ckStr);
strVal = http.login();
http.put_Login(strVal);

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
# strVal is a string
# ckStr is a CkString
http.get_LoginDomain(ckStr);
strVal = http.loginDomain();
http.put_LoginDomain(strVal);

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

top
MaxConnections
# intVal is an integer
intVal = http.get_MaxConnections();
http.put_MaxConnections(intVal);

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
# intVal is an integer
intVal = http.get_MaxFreshPeriod();
http.put_MaxFreshPeriod(intVal);

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
# intVal is a unsigned long
intVal = http.get_MaxResponseSize();
http.put_MaxResponseSize(intVal);

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
# intVal is an integer
intVal = http.get_MaxUrlLen();
http.put_MaxUrlLen(intVal);

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

top
MimicFireFox
# boolVal is a boolean
boolVal = http.get_MimicFireFox();
http.put_MimicFireFox(boolVal);

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
# boolVal is a boolean
boolVal = http.get_MimicIE();
http.put_MimicIE(boolVal);

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
# intVal is an integer
intVal = http.get_MinFreshPeriod();
http.put_MinFreshPeriod(intVal);

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

top
NegotiateAuth
# boolVal is a boolean
boolVal = http.get_NegotiateAuth();
http.put_NegotiateAuth(boolVal);

Set this property equal to true for Negotiate authentication.

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

top
NtlmAuth
# boolVal is a boolean
boolVal = http.get_NtlmAuth();
http.put_NtlmAuth(boolVal);

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
# intVal is an integer
intVal = http.get_NumCacheLevels();
http.put_NumCacheLevels(intVal);

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
# intVal is an integer
intVal = http.get_NumCacheRoots();

The number of cache roots to be used for the HTTP cache. This allows the disk cache spread out over multiple disk drives. Each cache root is a string indicating the drive letter and directory path. For example, "E:\Cache". An example of a very large low-cost cache might be four USB external drives. To create a cache with four roots, call AddCacheRoot once for each directory root.

top
OAuth1
# boolVal is a boolean
boolVal = http.get_OAuth1();
http.put_OAuth1(boolVal);

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
# boolVal is a boolean
boolVal = http.get_OAuthBodyHash();
http.put_OAuthBodyHash(boolVal);
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
# strVal is a string
# ckStr is a CkString
http.get_OAuthCallback(ckStr);
strVal = http.oAuthCallback();
http.put_OAuthCallback(strVal);
Introduced in version 9.5.0.53

The OAuth 1.0 callback URL. Defaults to "oob".

top
OAuthConsumerKey
# strVal is a string
# ckStr is a CkString
http.get_OAuthConsumerKey(ckStr);
strVal = http.oAuthConsumerKey();
http.put_OAuthConsumerKey(strVal);

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

top
OAuthConsumerSecret
# strVal is a string
# ckStr is a CkString
http.get_OAuthConsumerSecret(ckStr);
strVal = http.oAuthConsumerSecret();
http.put_OAuthConsumerSecret(strVal);

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

top
OAuthRealm
# strVal is a string
# ckStr is a CkString
http.get_OAuthRealm(ckStr);
strVal = http.oAuthRealm();
http.put_OAuthRealm(strVal);

The OAuth realm to be used in the Authorization header.

top
OAuthSigMethod
# strVal is a string
# ckStr is a CkString
http.get_OAuthSigMethod(ckStr);
strVal = http.oAuthSigMethod();
http.put_OAuthSigMethod(strVal);

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
# strVal is a string
# ckStr is a CkString
http.get_OAuthToken(ckStr);
strVal = http.oAuthToken();
http.put_OAuthToken(strVal);

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
# strVal is a string
# ckStr is a CkString
http.get_OAuthTokenSecret(ckStr);
strVal = http.oAuthTokenSecret();
http.put_OAuthTokenSecret(strVal);

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

top
OAuthVerifier
# strVal is a string
# ckStr is a CkString
http.get_OAuthVerifier(ckStr);
strVal = http.oAuthVerifier();
http.put_OAuthVerifier(strVal);

The OAuth verifier to be used in the Authorization header.

top
Password
# strVal is a string
# ckStr is a CkString
http.get_Password(ckStr);
strVal = http.password();
http.put_Password(strVal);

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
PreferIpv6
# boolVal is a boolean
boolVal = http.get_PreferIpv6();
http.put_PreferIpv6(boolVal);

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
# strVal is a string
# ckStr is a CkString
http.get_ProxyAuthMethod(ckStr);
strVal = http.proxyAuthMethod();
http.put_ProxyAuthMethod(strVal);

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
# boolVal is a boolean
boolVal = http.get_ProxyDirectTls();
http.put_ProxyDirectTls(boolVal);
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
# strVal is a string
# ckStr is a CkString
http.get_ProxyDomain(ckStr);
strVal = http.proxyDomain();
http.put_ProxyDomain(strVal);

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

top
ProxyLogin
# strVal is a string
# ckStr is a CkString
http.get_ProxyLogin(ckStr);
strVal = http.proxyLogin();
http.put_ProxyLogin(strVal);

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

top
ProxyLoginDomain
# strVal is a string
# ckStr is a CkString
http.get_ProxyLoginDomain(ckStr);
strVal = http.proxyLoginDomain();
http.put_ProxyLoginDomain(strVal);

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

top
ProxyPassword
# strVal is a string
# ckStr is a CkString
http.get_ProxyPassword(ckStr);
strVal = http.proxyPassword();
http.put_ProxyPassword(strVal);

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

top
ProxyPort
# intVal is an integer
intVal = http.get_ProxyPort();
http.put_ProxyPort(intVal);

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

top
ReadTimeout
# intVal is an integer
intVal = http.get_ReadTimeout();
http.put_ReadTimeout(intVal);

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
# boolVal is a boolean
boolVal = http.get_ReceivedCertReq();
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
# strVal is a string
# ckStr is a CkString
http.get_RedirectVerb(ckStr);
strVal = http.redirectVerb();
http.put_RedirectVerb(strVal);

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
# strVal is a string
# ckStr is a CkString
http.get_Referer(ckStr);
strVal = http.referer();
http.put_Referer(strVal);

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
# strVal is a string
# ckStr is a CkString
http.get_RequiredContentType(ckStr);
strVal = http.requiredContentType();
http.put_RequiredContentType(strVal);

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
RequireSslCertVerify
# boolVal is a boolean
boolVal = http.get_RequireSslCertVerify();
http.put_RequireSslCertVerify(boolVal);

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
S3Ssl
# boolVal is a boolean
boolVal = http.get_S3Ssl();
http.put_S3Ssl(boolVal);

If true, then all S3_* methods will use a secure SSL/TLS connection for communications. The default value is true.

top
SaveCookies
# boolVal is a boolean
boolVal = http.get_SaveCookies();
http.put_SaveCookies(boolVal);

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
# intVal is an integer
intVal = http.get_SendBufferSize();
http.put_SendBufferSize(intVal);

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

top
SendCookies
# boolVal is a boolean
boolVal = http.get_SendCookies();
http.put_SendCookies(boolVal);

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
# strVal is a string
# ckStr is a CkString
http.get_SessionLogFilename(ckStr);
strVal = http.sessionLogFilename();
http.put_SessionLogFilename(strVal);

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
# strVal is a string
# ckStr is a CkString
http.get_SniHostname(ckStr);
strVal = http.sniHostname();
http.put_SniHostname(strVal);
Introduced in version 9.5.0.82

Specifies the SNI hostname to be used in the TLS ClientHello. This property is only needed when the domain is specified via a dotted IP address and an SNI hostname is desired. (Normally, Chilkat automatically uses the domain name in the SNI hostname TLS ClientHello extension.)

top
SocksHostname
# strVal is a string
# ckStr is a CkString
http.get_SocksHostname(ckStr);
strVal = http.socksHostname();
http.put_SocksHostname(strVal);

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
# strVal is a string
# ckStr is a CkString
http.get_SocksPassword(ckStr);
strVal = http.socksPassword();
http.put_SocksPassword(strVal);

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
# intVal is an integer
intVal = http.get_SocksPort();
http.put_SocksPort(intVal);

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
# strVal is a string
# ckStr is a CkString
http.get_SocksUsername(ckStr);
strVal = http.socksUsername();
http.put_SocksUsername(strVal);

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

top
SocksVersion
# intVal is an integer
intVal = http.get_SocksVersion();
http.put_SocksVersion(intVal);

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
# intVal is an integer
intVal = http.get_SoRcvBuf();
http.put_SoRcvBuf(intVal);

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
# intVal is an integer
intVal = http.get_SoSndBuf();
http.put_SoSndBuf(intVal);

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
# strVal is a string
# ckStr is a CkString
http.get_SslAllowedCiphers(ckStr);
strVal = http.sslAllowedCiphers();
http.put_SslAllowedCiphers(strVal);
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
# strVal is a string
# ckStr is a CkString
http.get_SslProtocol(ckStr);
strVal = http.sslProtocol();
http.put_SslProtocol(strVal);
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
# strVal is a string
# ckStr is a CkString
http.get_StreamResponseBodyPath(ckStr);
strVal = http.streamResponseBodyPath();
http.put_StreamResponseBodyPath(strVal);
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
# strVal is a string
# ckStr is a CkString
http.get_TlsCipherSuite(ckStr);
strVal = http.tlsCipherSuite();
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
# strVal is a string
# ckStr is a CkString
http.get_TlsPinSet(ckStr);
strVal = http.tlsPinSet();
http.put_TlsPinSet(strVal);
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
# strVal is a string
# ckStr is a CkString
http.get_TlsVersion(ckStr);
strVal = http.tlsVersion();
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
# strVal is a string
# ckStr is a CkString
http.get_UncommonOptions(ckStr);
strVal = http.uncommonOptions();
http.put_UncommonOptions(strVal);

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
# boolVal is a boolean
boolVal = http.get_UpdateCache();
http.put_UpdateCache(boolVal);

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

More Information and Examples
top
UseIEProxy
# boolVal is a boolean
boolVal = http.get_UseIEProxy();
http.put_UseIEProxy(boolVal);

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
# strVal is a string
# ckStr is a CkString
http.get_UserAgent(ckStr);
strVal = http.userAgent();
http.put_UserAgent(strVal);

This property, if set, is the value of the User-Agent header field to be automatically included with GET requests issued by QuickGet or QuickGetStr. The default value is the empty string and no User-Agent header field will be sent.

top
Utf8
# boolVal is a boolean
boolVal = http.get_Utf8();
http.put_Utf8(boolVal);

When set to true, all "const char *" arguments are interpreted as utf-8 strings. If set to false (the default), then "const char *" arguments are interpreted as ANSI strings. Also, when set to true, and Chilkat method returning a "const char *" is returning the utf-8 representation. If set to false, all "const char *" return values are ANSI strings.

top
VerboseLogging
# boolVal is a boolean
boolVal = http.get_VerboseLogging();
http.put_VerboseLogging(boolVal);

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
# strVal is a string
# ckStr is a CkString
http.get_Version(ckStr);
strVal = http.version();

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

More Information and Examples
top
WasRedirected
# boolVal is a boolean
boolVal = http.get_WasRedirected();

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
# dir is a string
http.AddCacheRoot(dir);

This method must be called at least once if disk caching is to be used. The file path (including drive letter) such as "E:\MyHttpCache\" is passed to AddCacheRoot to specify the root directory. The cache can be spread across multiple disk drives by calling AddCacheRoot multiple times, each with a directory path on a separate disk drive.

More Information and Examples
top
ClearHeaders
http.ClearHeaders();
Introduced in version 9.5.0.77

Removes all headers added via the SetRequestHeader method.

top
ClearInMemoryCookies
http.ClearInMemoryCookies();

Clears all cookies cached in memory. Calling this only makes sense if the CookieDir property is set to the string "memory".

top
ClearUrlVars
http.ClearUrlVars();
Introduced in version 9.5.0.67

Clears all URL variable values previously set by one or more calls to SetUrlVar.

top
CloseAllConnections
status = http.CloseAllConnections();

Closes all connections still open from previous HTTP requests.

An HTTP object instance will maintain up to 10 connections. If the HTTP server's response does not include a "Connection: Close" header, the connection will remain open and will be re-used if possible for the next HTTP request to the same hostname:port. (It uses the IP address (in string form) or the domain name, whichever is used in the URL provided by the application.) If 10 connections are already open and another is needed, the object will close the least recently used connection.

Returns true for success, false for failure.

top
CloseAllConnectionsAsync (1)
# returns a CkTask
ret_task = http.CloseAllConnectionsAsync();

Creates an asynchronous task to call the CloseAllConnections method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
CreateOcspRequest
# requestDetails is a CkJsonObject
# ocspRequest is a CkBinData
status = http.CreateOcspRequest(requestDetails, ocspRequest);
Introduced in version 9.5.0.75

Creates an OCSP request for one or more certificates. The requestDetails is a JSON document describing the content of the OCSP request to be created. The examples in the links below show how to build the JSON request details.

Note: This method only creates an OCSP request. After creating, it may be sent to a server to get the OCSP response.

Returns true for success, false for failure.

More Information and Examples
top
CreateTimestampRequest
# hashAlg is a string
# hashVal is a string
# reqPolicyOid is a string
# addNonce is a boolean
# reqTsaCert is a boolean
# timestampToken is a CkBinData
status = http.CreateTimestampRequest(hashAlg, hashVal, reqPolicyOid, addNonce, reqTsaCert, timestampToken);
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: This method only creates a timestamp request. After creating, it may be sent to a server to get the binary timestamp token.

Returns true for success, false for failure.

top
DnsCacheClear
http.DnsCacheClear();
Introduced in version 9.5.0.38

Clears the Chilkat-wide in-memory hostname-to-IP address DNS cache. Chilkat automatically maintains this in-memory cache to prevent redundant DNS lookups. If the TTL on the DNS A records being accessed are short and/or these DNS records change frequently, then this method can be called clear the internal cache. Note: The DNS cache is used/shared among all Chilkat objects in a program, and clearing the cache affects all Chilkat objects.

top
Download
# url is a string
# localFilePath is a string
status = http.Download(url, localFilePath);

Retrieves the content at a URL and saves to a file. All content is saved in streaming mode such that the memory footprint is small and steady. HTTPS is fully supported, as it is with all the methods of this class.

Returns true for success, false for failure.

top
DownloadAsync (1)
# returns a CkTask
# url is a string
# localFilePath is a string
ret_task = http.DownloadAsync(url, localFilePath);

Creates an asynchronous task to call the Download method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
DownloadAppend
# url is a string
# filename is a string
status = http.DownloadAppend(url, filename);

Same as the Download method, but the output file is open for append.

Returns true for success, false for failure.

More Information and Examples
top
DownloadAppendAsync (1)
# returns a CkTask
# url is a string
# filename is a string
ret_task = http.DownloadAppendAsync(url, filename);

Creates an asynchronous task to call the DownloadAppend method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
DownloadBd
# url is a string
# binData is a CkBinData
status = http.DownloadBd(url, binData);
Introduced in version 9.5.0.63

Downloads the content at the url into a BinData object.

Returns true for success, false for failure.

top
DownloadBdAsync (1)
# returns a CkTask
# url is a string
# binData is a CkBinData
ret_task = http.DownloadBdAsync(url, binData);
Introduced in version 9.5.0.63

Creates an asynchronous task to call the DownloadBd method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
DownloadHash
# url is a string
# hashAlgorithm is a string
# encoding is a string
# outStr is a CkString (output)
status = http.DownloadHash(url, hashAlgorithm, encoding, outStr);
retStr = http.downloadHash(url, hashAlgorithm, encoding);

Retrieves the content at a URL and computes and returns a hash of the content. The hash is returned as an encoded string according to the encoding, which may be "Base64", "modBase64", "Base32", "UU", "QP" (for quoted-printable), "URL" (for url-encoding), "Hex", "Q", "B", "url_oath", "url_rfc1738", "url_rfc2396", and "url_rfc3986". The hashAlgorithm may be "sha1", "sha256", "sha384", "sha512", "md2", "md5", "haval", "ripemd128", "ripemd160","ripemd256", or "ripemd320".

Returns true for success, false for failure.

More Information and Examples
top
DownloadHashAsync (1)
# returns a CkTask
# url is a string
# hashAlgorithm is a string
# encoding is a string
ret_task = http.DownloadHashAsync(url, hashAlgorithm, encoding);

Creates an asynchronous task to call the DownloadHash method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
DownloadSb
# url is a string
# charset is a string
# sb is a CkStringBuilder
status = http.DownloadSb(url, charset, sb);
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.

More Information and Examples
top
DownloadSbAsync (1)
# returns a CkTask
# url is a string
# charset is a string
# sb is a CkStringBuilder
ret_task = http.DownloadSbAsync(url, charset, sb);
Introduced in version 9.5.0.63

Creates an asynchronous task to call the DownloadSb method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
ExtractMetaRefreshUrl
# htmlContent is a string
# outStr is a CkString (output)
status = http.ExtractMetaRefreshUrl(htmlContent, outStr);
retStr = http.extractMetaRefreshUrl(htmlContent);

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='http://example.com/'">
Then the return value of this method would be "http://example.com/".

Returns true for success, false for failure.

top
G_SvcOauthAccessToken
# iss is a string
# scope is a string
# subEmail is a string
# numSec is an integer
# cert is a CkCert
# outStr is a CkString (output)
status = http.G_SvcOauthAccessToken(iss, scope, subEmail, numSec, cert, outStr);
retStr = http.g_SvcOauthAccessToken(iss, scope, subEmail, numSec, cert);
Introduced in version 9.5.0.44

Makes an access token request to obtain a Google API OAuth2 access token for a service account. Access tokens issued by the Google OAuth 2.0 Authorization Server expire one hour after they are issued. When an access token expires, then the application should generate another JWT, sign it, and request another access token. The iss is the service account email address of the application making the access token request. The scope is a space-delimited list of the permissions that the application requests. (See https://developers.google.com/accounts/docs/OAuth2ServiceAccount )

The subEmail is the email address of the user for which the application is requesting delegated access. The subEmail may be left empty if there is no such email address.

Returns true for success, false for failure.

top
G_SvcOauthAccessTokenAsync (1)
# returns a CkTask
# iss is a string
# scope is a string
# subEmail is a string
# numSec is an integer
# cert is a CkCert
ret_task = http.G_SvcOauthAccessTokenAsync(iss, scope, subEmail, numSec, cert);
Introduced in version 9.5.0.44

Creates an asynchronous task to call the G_SvcOauthAccessToken method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
G_SvcOauthAccessToken2
# claimParams is a CkHashtable
# numSec is an integer
# cert is a CkCert
# outStr is a CkString (output)
status = http.G_SvcOauthAccessToken2(claimParams, numSec, cert, outStr);
retStr = http.g_SvcOauthAccessToken2(claimParams, numSec, cert);
Introduced in version 9.5.0.51

The same as the G_SvcOauthAccessToken method, but with added flexibility for more customization. The 1st three args of the G_SvcOauthAccessToken are replaced with claimParams allowing for future expansion of name-value params. See the example below.

Returns true for success, false for failure.

top
G_SvcOauthAccessToken2Async (1)
# returns a CkTask
# claimParams is a CkHashtable
# numSec is an integer
# cert is a CkCert
ret_task = http.G_SvcOauthAccessToken2Async(claimParams, numSec, cert);
Introduced in version 9.5.0.51

Creates an asynchronous task to call the G_SvcOauthAccessToken2 method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
GenTimeStamp
# outStr is a CkString (output)
status = http.GenTimeStamp(outStr);
retStr = http.genTimeStamp();

Returns the current GMT (also known as UTC) date/time in a string that is compliant with RFC 2616 format.

Returns true for success, false for failure.

top
GetCacheRoot
# index is an integer
# outStr is a CkString (output)
status = http.GetCacheRoot(index, outStr);
retStr = http.getCacheRoot(index);

Returns the Nth cache root (indexing begins at 0). Cache roots are set by calling AddCacheRoot one or more times.

Returns true for success, false for failure.

top
GetCookieXml
# domain is a string
# outStr is a CkString (output)
status = http.GetCookieXml(domain, outStr);
retStr = http.getCookieXml(domain);

Returns the cookies in XML format for a specific domain. Cookies are only persisted if the SaveCookies property is set to true. If the CookieDir property is set to the keyword "memory", then cookies are saved in-memory.

Returns true for success, false for failure.

top
GetDomain
# url is a string
# outStr is a CkString (output)
status = http.GetDomain(url, outStr);
retStr = http.getDomain(url);

Utility method for extracting the domain name from a full URL. For example, if "https://www.chilkatsoft.com/default.asp" is the URL passed in, then "www.chilkatsoft.com" is returned.

Returns true for success, false for failure.

top
GetHead
# returns a CkHttpResponse
# url is a string
ret_httpResponse = http.GetHead(url);

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)
# returns a CkTask
# url is a string
ret_task = http.GetHeadAsync(url);

Creates an asynchronous task to call the GetHead method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
GetRequestHeader
# name is a string
# outStr is a CkString (output)
status = http.GetRequestHeader(name, outStr);
retStr = http.getRequestHeader(name);

Returns the value of a header field that has been pre-defined to be sent with all HTTP GET requests issued by the QuickGet and QuickGetStr methods. By default, this includes header fields such as Accept, AcceptCharset, AcceptLanguage, Connection, UserAgent, etc.

Returns true for success, false for failure.

top
GetServerSslCert
# returns a CkCert
# domain is a string
# port is an integer
ret_cert = http.GetServerSslCert(domain, port);

Establishes an SSL/TLS connection with a web server for the purpose of retrieving the server's SSL certificate (public-key only of course...). Nothing is retrieved from the web server. This method simply makes a connection, gets the certificate information, and closes the connection.

Returns nil on failure

top
GetServerSslCertAsync (1) (2)
# returns a CkTask
# domain is a string
# port is an integer
ret_task = http.GetServerSslCertAsync(domain, port);

Creates an asynchronous task to call the GetServerSslCert method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
GetUrlPath
# url is a string
# outStr is a CkString (output)
status = http.GetUrlPath(url, outStr);
retStr = http.getUrlPath(url);

Returns the path part of a URL. The syntax of a URL is <scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>. This method returns the "path" part.

Returns true for success, false for failure.

top
HasRequestHeader
# name is a string
retBool = http.HasRequestHeader(name);

Returns true if the specified header field is defined such that it will be sent with all GET requests issued by the QuickGet and QuickGetStr methods.

top
LastJsonData
# returns a CkJsonObject
ret_jsonObject = http.LastJsonData();
Introduced in version 9.5.0.79

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
LoadTaskCaller
# task is a CkTask
status = http.LoadTaskCaller(task);
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
# domain is a string
# port is an integer
retInt = http.OcspCheck(domain, port);
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)
# returns a CkTask
# domain is a string
# port is an integer
ret_task = http.OcspCheckAsync(domain, port);
Introduced in version 9.5.0.84

Creates an asynchronous task to call the OcspCheck method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
ParseOcspReply
# ocspReply is a CkBinData
# replyData is a CkJsonObject
retInt = http.ParseOcspReply(ocspReply, replyData);
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.

More Information and Examples
top
PBinary
# returns a CkHttpResponse
# verb is a string
# url is a string
# byteData is a CkByteData
# contentType is a string
# md5 is a boolean
# gzip is a boolean
ret_httpResponse = http.PBinary(verb, url, byteData, contentType, md5, gzip);
Introduced in version 9.5.0.45

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)
# returns a CkTask
# verb is a string
# url is a string
# byteData is a CkByteData
# contentType is a string
# md5 is a boolean
# gzip is a boolean
ret_task = http.PBinaryAsync(verb, url, byteData, contentType, md5, gzip);
Introduced in version 9.5.0.45

Creates an asynchronous task to call the PBinary method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
PBinaryBd
# returns a CkHttpResponse
# verb is a string
# url is a string
# data is a CkBinData
# contentType is a string
# md5 is a boolean
# gzip is a boolean
ret_httpResponse = http.PBinaryBd(verb, url, data, contentType, md5, gzip);
Introduced in version 9.5.0.69

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

Returns nil on failure

top
PBinaryBdAsync (1) (2)
# returns a CkTask
# verb is a string
# url is a string
# data is a CkBinData
# contentType is a string
# md5 is a boolean
# gzip is a boolean
ret_task = http.PBinaryBdAsync(verb, url, data, contentType, md5, gzip);
Introduced in version 9.5.0.69

Creates an asynchronous task to call the PBinaryBd method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
PFile
# returns a CkHttpResponse
# verb is a string
# url is a string
# localFilePath is a string
# contentType is a string
# md5 is a boolean
# gzip is a boolean
ret_httpResponse = http.PFile(verb, url, localFilePath, contentType, md5, gzip);
Introduced in version 9.5.0.83

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)
# returns a CkTask
# verb is a string
# url is a string
# localFilePath is a string
# contentType is a string
# md5 is a boolean
# gzip is a boolean
ret_task = http.PFileAsync(verb, url, localFilePath, contentType, md5, gzip);
Introduced in version 9.5.0.83

Creates an asynchronous task to call the PFile method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
PostBinary
# url is a string
# byteData is a CkByteData
# contentType is a string
# md5 is a boolean
# gzip is a boolean
# outStr is a CkString (output)
status = http.PostBinary(url, byteData, contentType, md5, gzip, outStr);
retStr = http.postBinary(url, byteData, contentType, md5, gzip);

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 true for success, false for failure.

More Information and Examples
top
PostBinaryAsync (1)
# returns a CkTask
# url is a string
# byteData is a CkByteData
# contentType is a string
# md5 is a boolean
# gzip is a boolean
ret_task = http.PostBinaryAsync(url, byteData, contentType, md5, gzip);

Creates an asynchronous task to call the PostBinary method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
PostJson
# returns a CkHttpResponse
# url is a string
# jsonText is a string
ret_httpResponse = http.PostJson(url, jsonText);

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)
# returns a CkTask
# url is a string
# jsonText is a string
ret_task = http.PostJsonAsync(url, jsonText);

Creates an asynchronous task to call the PostJson method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
PostJson2
# returns a CkHttpResponse
# url is a string
# contentType is a string
# jsonText is a string
ret_httpResponse = http.PostJson2(url, contentType, jsonText);

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)
# returns a CkTask
# url is a string
# contentType is a string
# jsonText is a string
ret_task = http.PostJson2Async(url, contentType, jsonText);

Creates an asynchronous task to call the PostJson2 method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
PostJson3
# returns a CkHttpResponse
# url is a string
# contentType is a string
# json is a CkJsonObject
ret_httpResponse = http.PostJson3(url, contentType, json);
Introduced in version 9.5.0.68

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

Returns nil on failure

top
PostJson3Async (1) (2)
# returns a CkTask
# url is a string
# contentType is a string
# json is a CkJsonObject
ret_task = http.PostJson3Async(url, contentType, json);
Introduced in version 9.5.0.68

Creates an asynchronous task to call the PostJson3 method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
PostUrlEncoded
# returns a CkHttpResponse
# url is a string
# req is a CkHttpRequest
ret_httpResponse = http.PostUrlEncoded(url, req);

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)
# returns a CkTask
# url is a string
# req is a CkHttpRequest
ret_task = http.PostUrlEncodedAsync(url, req);

Creates an asynchronous task to call the PostUrlEncoded method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
PostXml
# returns a CkHttpResponse
# endpointUrl is a string
# xmlContent is a string
# xmlCharset is a string
ret_httpResponse = http.PostXml(endpointUrl, xmlContent, xmlCharset);

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)
# returns a CkTask
# endpointUrl is a string
# xmlContent is a string
# xmlCharset is a string
ret_task = http.PostXmlAsync(endpointUrl, xmlContent, xmlCharset);

Creates an asynchronous task to call the PostXml method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
PText
# returns a CkHttpResponse
# verb is a string
# url is a string
# textData is a string
# charset is a string
# contentType is a string
# md5 is a boolean
# gzip is a boolean
ret_httpResponse = http.PText(verb, url, textData, charset, contentType, md5, gzip);
Introduced in version 9.5.0.46

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

More Information and Examples
top
PTextAsync (1) (2)
# returns a CkTask
# verb is a string
# url is a string
# textData is a string
# charset is a string
# contentType is a string
# md5 is a boolean
# gzip is a boolean
ret_task = http.PTextAsync(verb, url, textData, charset, contentType, md5, gzip);
Introduced in version 9.5.0.46

Creates an asynchronous task to call the PText method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
PTextSb
# returns a CkHttpResponse
# verb is a string
# url is a string
# textData is a CkStringBuilder
# charset is a string
# contentType is a string
# md5 is a boolean
# gzip is a boolean
ret_httpResponse = http.PTextSb(verb, url, textData, charset, contentType, md5, gzip);
Introduced in version 9.5.0.69

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

Returns nil on failure

top
PTextSbAsync (1) (2)
# returns a CkTask
# verb is a string
# url is a string
# textData is a CkStringBuilder
# charset is a string
# contentType is a string
# md5 is a boolean
# gzip is a boolean
ret_task = http.PTextSbAsync(verb, url, textData, charset, contentType, md5, gzip);
Introduced in version 9.5.0.69

Creates an asynchronous task to call the PTextSb method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
PutBinary
# url is a string
# byteData is a CkByteData
# contentType is a string
# md5 is a boolean
# gzip is a boolean
# outStr is a CkString (output)
status = http.PutBinary(url, byteData, contentType, md5, gzip, outStr);
retStr = http.putBinary(url, byteData, contentType, md5, gzip);

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 true for success, false for failure.

top
PutBinaryAsync (1)
# returns a CkTask
# url is a string
# byteData is a CkByteData
# contentType is a string
# md5 is a boolean
# gzip is a boolean
ret_task = http.PutBinaryAsync(url, byteData, contentType, md5, gzip);

Creates an asynchronous task to call the PutBinary method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
PutText
# url is a string
# textData is a string
# charset is a string
# contentType is a string
# md5 is a boolean
# gzip is a boolean
# outStr is a CkString (output)
status = http.PutText(url, textData, charset, contentType, md5, gzip, outStr);
retStr = http.putText(url, textData, charset, contentType, md5, gzip);

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 true for success, false for failure.

More Information and Examples
top
PutTextAsync (1)
# returns a CkTask
# url is a string
# textData is a string
# charset is a string
# contentType is a string
# md5 is a boolean
# gzip is a boolean
ret_task = http.PutTextAsync(url, textData, charset, contentType, md5, gzip);

Creates an asynchronous task to call the PutText method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
QuickDeleteStr
# url is a string
# outStr is a CkString (output)
status = http.QuickDeleteStr(url, outStr);
retStr = http.quickDeleteStr(url);

Same as QuickGetStr, but uses the HTTP DELETE 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 true for success, false for failure.

More Information and Examples
top
QuickDeleteStrAsync (1)
# returns a CkTask
# url is a string
ret_task = http.QuickDeleteStrAsync(url);

Creates an asynchronous task to call the QuickDeleteStr method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
QuickGet
# url is a string
# outData is a CkByteData (output)
status = http.QuickGet(url, outData);

Sends an HTTP GET request for a URL and returns the binary response body. The URL may contain query parameters. 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 resource may be fetched directly from cache.

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

A response code >= 400 is considered a failure. If the error response was textual in nature, then it will also be available in the LastResponseBody property.

Returns true for success, false for failure.

top
QuickGetAsync (1)
# returns a CkTask
# url is a string
ret_task = http.QuickGetAsync(url);

Creates an asynchronous task to call the QuickGet method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
QuickGetBd
# url is a string
# binData is a CkBinData
status = http.QuickGetBd(url, binData);
Introduced in version 9.5.0.64

The same as QuickGet, but returns the content in a Chilkat BinData object. The existing content of binData, if any, is cleared and replaced with the downloaded content.

A response code >= 400 is considered a failure and the method will return false. However, the error response will still be returned in binData. If the error response was textual in nature, then it will also be available in the LastResponseBody property.

Returns true for success, false for failure.

top
QuickGetBdAsync (1)
# returns a CkTask
# url is a string
# binData is a CkBinData
ret_task = http.QuickGetBdAsync(url, binData);
Introduced in version 9.5.0.64

Creates an asynchronous task to call the QuickGetBd method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
QuickGetObj
# returns a CkHttpResponse
# url is a string
ret_httpResponse = http.QuickGetObj(url);

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)
# returns a CkTask
# url is a string
ret_task = http.QuickGetObjAsync(url);

Creates an asynchronous task to call the QuickGetObj method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
QuickGetSb
# url is a string
# sbContent is a CkStringBuilder
status = http.QuickGetSb(url, sbContent);
Introduced in version 9.5.0.64

The same as QuickGetStr, but returns the content in a Chilkat StringBuilder object. The existing content of sbContent, if any, is cleared and replaced with the downloaded content.

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.

More Information and Examples
top
QuickGetSbAsync (1)
# returns a CkTask
# url is a string
# sbContent is a CkStringBuilder
ret_task = http.QuickGetSbAsync(url, sbContent);
Introduced in version 9.5.0.64

Creates an asynchronous task to call the QuickGetSb method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
QuickGetStr
# url is a string
# outStr is a CkString (output)
status = http.QuickGetStr(url, outStr);
retStr = http.quickGetStr(url);

Sends an HTTP GET request for a URL and returns the response body as a string. The URL may contain query parameters. 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. If the HTTP request fails, a nil value is returned and error information can be found in the LastErrorText, LastErrorXml, or LastErrorHtml properties.

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

Returns true for success, false for failure.

top
QuickGetStrAsync (1)
# returns a CkTask
# url is a string
ret_task = http.QuickGetStrAsync(url);

Creates an asynchronous task to call the QuickGetStr method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
QuickPutStr
# url is a string
# outStr is a CkString (output)
status = http.QuickPutStr(url, outStr);
retStr = http.quickPutStr(url);

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 true for success, false for failure.

More Information and Examples
top
QuickPutStrAsync (1)
# returns a CkTask
# url is a string
ret_task = http.QuickPutStrAsync(url);

Creates an asynchronous task to call the QuickPutStr method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
QuickRequest
# returns a CkHttpResponse
# verb is a string
# url is a string
ret_httpResponse = http.QuickRequest(verb, url);
Introduced in version 9.5.0.77

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

More Information and Examples
top
QuickRequestAsync (1) (2)
# returns a CkTask
# verb is a string
# url is a string
ret_task = http.QuickRequestAsync(verb, url);
Introduced in version 9.5.0.77

Creates an asynchronous task to call the QuickRequest method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
QuickRequestParams
# returns a CkHttpResponse
# verb is a string
# url is a string
# json is a CkJsonObject
ret_httpResponse = http.QuickRequestParams(verb, url, json);
Introduced in version 9.5.0.89

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)
# returns a CkTask
# verb is a string
# url is a string
# json is a CkJsonObject
ret_task = http.QuickRequestParamsAsync(verb, url, json);
Introduced in version 9.5.0.89

Creates an asynchronous task to call the QuickRequestParams method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
RemoveRequestHeader
# name is a string
http.RemoveRequestHeader(name);

Removes a header from the internal list of custom header field name/value pairs to be automatically added when HTTP requests are sent via methods that do not use the HTTP request object. (The SetRequestHeader method is called to add custom header fields.)

top
RenderGet
# url is a string
# outStr is a CkString (output)
status = http.RenderGet(url, outStr);
retStr = http.renderGet(url);

Same as QuickGet, but does not send the HTTP GET. Instead, it builds the HTTP request that would've been sent and returns it.

Returns true for success, false for failure.

More Information and Examples
top
ResumeDownload
# url is a string
# targetFilename is a string
status = http.ResumeDownload(url, targetFilename);

Same as the Download method, except a failed download may be resumed. The targetFilename is automatically checked and if it exists, the download will resume at the point where it previously failed. ResumeDownload may be called any number of times until the full download is complete.

Returns true for success, false for failure.

top
ResumeDownloadAsync (1)
# returns a CkTask
# url is a string
# targetFilename is a string
ret_task = http.ResumeDownloadAsync(url, targetFilename);

Creates an asynchronous task to call the ResumeDownload method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
ResumeDownloadBd
# url is a string
# binData is a CkBinData
status = http.ResumeDownloadBd(url, binData);
Introduced in version 9.5.0.75

Same as the DownloadBd method, except a failed download may be resumed. The download will resume at a point based on the number of bytes already contained in binData. ResumeDownloadBd may be called any number of times until the full download is complete.

The incoming data is appended to binData.

Returns true for success, false for failure.

top
ResumeDownloadBdAsync (1)
# returns a CkTask
# url is a string
# binData is a CkBinData
ret_task = http.ResumeDownloadBdAsync(url, binData);
Introduced in version 9.5.0.75

Creates an asynchronous task to call the ResumeDownloadBd method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
S3_CreateBucket
# bucketPath is a string
status = http.S3_CreateBucket(bucketPath);

Creates a new Amazon S3 bucket.

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.

Returns true for success, false for failure.

More Information and Examples
top
S3_CreateBucketAsync (1)
# returns a CkTask
# bucketPath is a string
ret_task = http.S3_CreateBucketAsync(bucketPath);

Creates an asynchronous task to call the S3_CreateBucket method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
S3_DeleteBucket
# bucketPath is a string
status = http.S3_DeleteBucket(bucketPath);

Deletes an Amazon S3 bucket.

Note: If the bucket is in a region different than us-east-1, makes sure to set the AwsEndpoint property to the correct region, such as "eu-central-1". Also, if using an S3 compatible service such as Wasabi, always set the AwsEndpoint property. For example: "s3.wasabisys.com", "s3.eu-central-1.wasabisys.com".

Returns true for success, false for failure.

More Information and Examples
top
S3_DeleteBucketAsync (1)
# returns a CkTask
# bucketPath is a string
ret_task = http.S3_DeleteBucketAsync(bucketPath);

Creates an asynchronous task to call the S3_DeleteBucket method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
S3_DeleteMultipleObjects
# returns a CkHttpResponse
# bucketName is a string
# objectNames is a CkStringArray
ret_httpResponse = http.S3_DeleteMultipleObjects(bucketName, objectNames);
Introduced in version 9.5.0.47

Deletes multiple objects from a bucket using a single HTTP request. The bucketName 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

More Information and Examples
top
S3_DeleteMultipleObjectsAsync (1) (2)
# returns a CkTask
# bucketName is a string
# objectNames is a CkStringArray
ret_task = http.S3_DeleteMultipleObjectsAsync(bucketName, objectNames);
Introduced in version 9.5.0.47

Creates an asynchronous task to call the S3_DeleteMultipleObjects method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
S3_DeleteObject
# bucketPath is a string
# objectName is a string
status = http.S3_DeleteObject(bucketPath, objectName);

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)
# returns a CkTask
# bucketPath is a string
# objectName is a string
ret_task = http.S3_DeleteObjectAsync(bucketPath, objectName);

Creates an asynchronous task to call the S3_DeleteObject method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
S3_DownloadBd
# bucketPath is a string
# objectName is a string
# bd is a CkBinData
status = http.S3_DownloadBd(bucketPath, objectName, bd);
Introduced in version 9.5.0.76

The same as DownloadFile, except the downloaded file data is appended to bd.

Note: If the bucket is in a region different than us-east-1, makes sure to set the AwsEndpoint property to the correct region, such as "eu-central-1". Also, if using an S3 compatible service such as Wasabi, always set the AwsEndpoint property. For example: "s3.wasabisys.com", "s3.eu-central-1.wasabisys.com".

Returns true for success, false for failure.

top
S3_DownloadBdAsync (1)
# returns a CkTask
# bucketPath is a string
# objectName is a string
# bd is a CkBinData
ret_task = http.S3_DownloadBdAsync(bucketPath, objectName, bd);
Introduced in version 9.5.0.76

Creates an asynchronous task to call the S3_DownloadBd method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
S3_DownloadBytes
# bucketPath is a string
# objectName is a string
# outBytes is a CkByteData (output)
status = http.S3_DownloadBytes(bucketPath, objectName, outData);

The same as DownloadFile, except the file data is returned directly in-memory instead of being written to a local file.

Returns true for success, false for failure.

More Information and Examples
top
S3_DownloadBytesAsync (1)
# returns a CkTask
# bucketPath is a string
# objectName is a string
ret_task = http.S3_DownloadBytesAsync(bucketPath, objectName);

Creates an asynchronous task to call the S3_DownloadBytes method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
S3_DownloadFile
# bucketPath is a string
# objectName is a string
# localFilePath is a string
status = http.S3_DownloadFile(bucketPath, objectName, localFilePath);

Downloads a file from the Amazon S3 service.

Note: If the bucket is in a region different than us-east-1, makes sure to set the AwsEndpoint property to the correct region, such as "eu-central-1". Also, if using an S3 compatible service such as Wasabi, always set the AwsEndpoint property. For example: "s3.wasabisys.com", "s3.eu-central-1.wasabisys.com".

Returns true for success, false for failure.

More Information and Examples
top
S3_DownloadFileAsync (1)
# returns a CkTask
# bucketPath is a string
# objectName is a string
# localFilePath is a string
ret_task = http.S3_DownloadFileAsync(bucketPath, objectName, localFilePath);

Creates an asynchronous task to call the S3_DownloadFile method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
S3_DownloadString
# bucketPath is a string
# objectName is a string
# charset is a string
# outStr is a CkString (output)
status = http.S3_DownloadString(bucketPath, objectName, charset, outStr);
retStr = http.s3_DownloadString(bucketPath, objectName, charset);

Downloads a text file (object) from the Amazon S3 service directly into a string variable. The charset specifies the character encoding, such as "utf-8", of the remote text object.

Note: If the bucket is in a region different than us-east-1, makes sure to set the AwsEndpoint property to the correct region, such as "eu-central-1". Also, if using an S3 compatible service such as Wasabi, always set the AwsEndpoint property. For example: "s3.wasabisys.com", "s3.eu-central-1.wasabisys.com".

Returns true for success, false for failure.

More Information and Examples
top
S3_DownloadStringAsync (1)
# returns a CkTask
# bucketPath is a string
# objectName is a string
# charset is a string
ret_task = http.S3_DownloadStringAsync(bucketPath, objectName, charset);

Creates an asynchronous task to call the S3_DownloadString method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
S3_FileExists
# bucketPath is a string
# objectName is a string
retInt = http.S3_FileExists(bucketPath, objectName);

Determines if a remote object (file) exists. Returns 1 if the file exists, 0 if it does not exist, -1 if there was a failure in checking, or 2 if using in asynchronous mode to indicate that the background task was successfully started.

Note: If the bucket is in a region different than us-east-1, makes sure to set the AwsEndpoint property to the correct region, such as "eu-central-1". Also, if using an S3 compatible service such as Wasabi, always set the AwsEndpoint property. For example: "s3.wasabisys.com", "s3.eu-central-1.wasabisys.com".

top
S3_FileExistsAsync (1)
# returns a CkTask
# bucketPath is a string
# objectName is a string
ret_task = http.S3_FileExistsAsync(bucketPath, objectName);

Creates an asynchronous task to call the S3_FileExists method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
S3_GenerateUrl
# bucket is a string
# path is a string
# expire is a CkDateTime
# outStr is a CkString (output)
status = http.S3_GenerateUrl(bucket, path, expire, outStr);
retStr = http.s3_GenerateUrl(bucket, path, expire);
Introduced in version 9.5.0.46

Generates a temporary pre-signed URL for Amazon S3 using AWS Signature V2. (Call S3_GenerateUrlV4 to generate AWS Signature V4 pre-signed URLs.) Requires that the AwsSecretKey and AwsAccessKey be set to valid values prior to calling this method.

Note: This method can only generate URLs that are for HTTP GET requests (i.e. URLs you can paste into a browser address bar). This method does not generate URLs for POST, PUT, DELETE, etc.

Returns true for success, false for failure.

More Information and Examples
top
S3_GenerateUrlV4
# useHttps is a boolean
# bucketName is a string
# path is a string
# numSecondsValid is an integer
# awsService is a string
# outStr is a CkString (output)
status = http.S3_GenerateUrlV4(useHttps, bucketName, path, numSecondsValid, awsService, outStr);
retStr = http.s3_GenerateUrlV4(useHttps, bucketName, path, numSecondsValid, awsService);
Introduced in version 9.5.0.66

Note: The S3_GenPresignedUrl method is new in Chilkat v9.5.0.83 and can create S3 pre-signed URLs for GET, POST, PUT, DELETE, or any other HTTP verb.

Generates a temporary pre-signed URL for Amazon S3 using AWS Signature V4. (Call S3_GenerateUrl to generate AWS Signature V2 pre-signed URLs.) Requires that the AwsSecretKey, AwsAccessKey, and AwsRegion properties be set to valid values prior to calling this method. Also requires the AwsEndpoint property to be set if the endpoint is different than "s3.amazonaws.com".

The URL that is generated 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>  

The awsService is a string naming the AWS service, such as "s3". If useHttps is true, then the URL begins with "https://", otherwise it begins with "http://".

Note: This method can only generate URLs that are for HTTP GET requests (i.e. URLs you can paste into a browser address bar). This method does not generate URLs for POST, PUT, DELETE, etc.

Returns true for success, false for failure.

top
S3_GenPresignedUrl
# httpVerb is a string
# useHttps is a boolean
# bucketName is a string
# path is a string
# numSecondsValid is an integer
# awsService is a string
# outStr is a CkString (output)
status = http.S3_GenPresignedUrl(httpVerb, useHttps, bucketName, path, numSecondsValid, awsService, outStr);
retStr = http.s3_GenPresignedUrl(httpVerb, useHttps, bucketName, path, numSecondsValid, awsService);
Introduced in version 9.5.0.83

Generates a temporary pre-signed URL for Amazon S3 using AWS Signature V4. Requires that the AwsSecretKey, AwsAccessKey, and AwsRegion properties be set to valid values prior to calling this method. Also requires the AwsEndpoint property to be set if the endpoint is different than "s3.amazonaws.com".

The URL that is generated 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>  

The httpVerb is the HTTP verb such as "GET", "PUT", "POST", "DELETE", etc. The awsService is a string naming the AWS service, such as "s3" or "s3-accelerate". If useHttps is true, then the URL begins with "https://", otherwise it begins with "http://".

Returns true for success, false for failure.

top
S3_ListBucketObjects
# bucketPath is a string
# outStr is a CkString (output)
status = http.S3_ListBucketObjects(bucketPath, outStr);
retStr = http.s3_ListBucketObjects(bucketPath);

Retrieves the XML listing of the objects contained within an Amazon S3 bucket. (This is like a directory listing, but in XML format.)

The bucketPath name may be qualified with URL-encoded params. For example, to list the objects in a bucket named "ChilkatABC" with max-keys = 2000 and marker = "xyz", call S3_ListBucketObject passing the following string for bucketPath: "ChilkatABC?max-keys=2000&marker=xyz"

The S3_ListBucketObjects method recognized all params listed in the AWS documentation for listing objects in a bucket: delimiter, marker, max-keys, and prefix. See Amazon's AWS online documentation for more information.

Returns true for success, false for failure.

More Information and Examples
top
S3_ListBucketObjectsAsync (1)
# returns a CkTask
# bucketPath is a string
ret_task = http.S3_ListBucketObjectsAsync(bucketPath);

Creates an asynchronous task to call the S3_ListBucketObjects method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
S3_ListBuckets
# outStr is a CkString (output)
status = http.S3_ListBuckets(outStr);
retStr = http.s3_ListBuckets();

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

Returns true for success, false for failure.

More Information and Examples
top
S3_ListBucketsAsync (1)
# returns a CkTask
ret_task = http.S3_ListBucketsAsync();

Creates an asynchronous task to call the S3_ListBuckets method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
S3_UploadBd
# bd is a CkBinData
# contentType is a string
# bucketPath is a string
# objectName is a string
status = http.S3_UploadBd(bd, contentType, bucketPath, objectName);
Introduced in version 9.5.0.76

The same as S3_UploadFile, except the contents of the file come from bd instead of a local file.

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: If the bucket is in a region different than us-east-1, makes sure to set the AwsEndpoint property to the correct region, such as "eu-central-1". Also, if using an S3 compatible service such as Wasabi, always set the AwsEndpoint property. For example: "s3.wasabisys.com", "s3.eu-central-1.wasabisys.com".

Returns true for success, false for failure.

More Information and Examples
top
S3_UploadBdAsync (1)
# returns a CkTask
# bd is a CkBinData
# contentType is a string
# bucketPath is a string
# objectName is a string
ret_task = http.S3_UploadBdAsync(bd, contentType, bucketPath, objectName);
Introduced in version 9.5.0.76

Creates an asynchronous task to call the S3_UploadBd method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
S3_UploadBytes
# contentBytes is a CkByteData
# contentType is a string
# bucketPath is a string
# objectName is a string
status = http.S3_UploadBytes(contentBytes, contentType, bucketPath, objectName);

The same as S3_UploadFile, except the contents of the file come from contentBytes instead of a local file.

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.

Returns true for success, false for failure.

More Information and Examples
top
S3_UploadBytesAsync (1)
# returns a CkTask
# contentBytes is a CkByteData
# contentType is a string
# bucketPath is a string
# objectName is a string
ret_task = http.S3_UploadBytesAsync(contentBytes, contentType, bucketPath, objectName);

Creates an asynchronous task to call the S3_UploadBytes method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
S3_UploadFile
# localFilePath is a string
# contentType is a string
# bucketPath is a string
# objectName is a string
status = http.S3_UploadFile(localFilePath, contentType, bucketPath, objectName);

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: If the bucket is in a region different than us-east-1, makes sure to set the AwsEndpoint property to the correct region, such as "eu-central-1". Also, if using an S3 compatible service such as Wasabi, always set the AwsEndpoint property. For example: "s3.wasabisys.com", "s3.eu-central-1.wasabisys.com".

Returns true for success, false for failure.

More Information and Examples
top
S3_UploadFileAsync (1)
# returns a CkTask
# localFilePath is a string
# contentType is a string
# bucketPath is a string
# objectName is a string
ret_task = http.S3_UploadFileAsync(localFilePath, contentType, bucketPath, objectName);

Creates an asynchronous task to call the S3_UploadFile method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
S3_UploadString
# objectContent is a string
# charset is a string
# contentType is a string
# bucketPath is a string
# objectName is a string
status = http.S3_UploadString(objectContent, charset, contentType, bucketPath, objectName);

Uploads an in-memory string to the Amazon S3 service. This is the same as UploadFile, except that the file contents are from an in-memory string instead of a local file. Internal to this method, the objectContent is converted to the character encoding specified by charset prior to uploading.

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: If the bucket is in a region different than us-east-1, makes sure to set the AwsEndpoint property to the correct region, such as "eu-central-1". Also, if using an S3 compatible service such as Wasabi, always set the AwsEndpoint property. For example: "s3.wasabisys.com", "s3.eu-central-1.wasabisys.com".

Returns true for success, false for failure.

More Information and Examples
top
S3_UploadStringAsync (1)
# returns a CkTask
# objectContent is a string
# charset is a string
# contentType is a string
# bucketPath is a string
# objectName is a string
ret_task = http.S3_UploadStringAsync(objectContent, charset, contentType, bucketPath, objectName);

Creates an asynchronous task to call the S3_UploadString method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
SetAuthPrivateKey
# publicKeyId is a string
# privKey is a CkPrivateKey
status = http.SetAuthPrivateKey(publicKeyId, privKey);
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
# sb is a CkStringBuilder
status = http.SetAuthTokenSb(sb);
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
# domain is a string
# cookieXml is a string
status = http.SetCookieXml(domain, cookieXml);

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
# privKey is a CkPrivateKey
status = http.SetOAuthRsaKey(privKey);
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
# headerFieldName is a string
# headerFieldValue is a string
http.SetRequestHeader(headerFieldName, headerFieldValue);

Adds a custom header field to any HTTP request sent by a method that does not use the HTTP request object. These methods include Download, DownloadAppend, GetHead, PostBinary, PostXml, PutBinary, PutText, QuickDeleteStr, QuickGet, QuickGetObj, QuickGetStr, QuickPutStr, XmlRpc, and XmlRpcPut.

Cookies may be explictly added by calling this method passing "Cookie" for the headerFieldName.

The RemoveRequestHeader method can be called to remove a custom header.

Note1: Do not call this method to add Basic authentication, i.e. "Authorization: Basic ....". Instead, set the Login and Password properties, and also set the BasicAuth property = true. Chilkat will add the "Authorization: Basic ..." header using the correct format automatically.

Note 2: Never explicitly set the Content-Length header field. Chilkat will automatically compute the correct length and add the Content-Length header to all POST, PUT, or any other request where the Content-Length needs to be specified. (GET requests always have a 0 length body, and therefore never need a Content-Length header field.)

Note 3: To add more than one header, call this method once per header field.

Note 4:: Passing an empty value string causes the header to be removed. This was the unfortunate behavior of the method from the beginning, and cannot be changed for backward compatibility reasons. A workaround exists starting in v9.5.0.82 by adding the "AllowEmptyHeaders" keyword to the UncommonOptions property.

More Information and Examples
top
SetSecurePassword
# password is a CkSecureString
status = http.SetSecurePassword(password);
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
# reqName is a string
# reqValue is a string
status = http.SetSslCertRequirement(reqName, reqValue);
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 (added in v9.5.0.84)

The reqName specifies the part of the certificate, and the reqValue is the value that it must match exactly or with a wildcard (*). 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
# cert is a CkCert
status = http.SetSslClientCert(cert);

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

Returns true for success, false for failure.

top
SetSslClientCertPem
# pemDataOrPath is a string
# pemPassword is a string
status = http.SetSslClientCertPem(pemDataOrPath, pemPassword);

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
# pfxPath is a string
# pfxPassword is a string
status = http.SetSslClientCertPfx(pfxPath, pfxPassword);

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
# name is a string
# value is a string
status = http.SetUrlVar(name, value);
Introduced in version 9.5.0.67

Sets the value of a variable for substitutions in URLs passed to any method. Variables can appear in URLs in the following format: {$varName}. For example: https://graph.microsoft.com/v1.0/users/{$id}

Returns true for success, false for failure.

top
SharePointOnlineAuth
# siteUrl is a string
# username is a string
# password is a CkSecureString
# extraInfo is a CkJsonObject
status = http.SharePointOnlineAuth(siteUrl, username, password, extraInfo);
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)
# returns a CkTask
# siteUrl is a string
# username is a string
# password is a CkSecureString
# extraInfo is a CkJsonObject
ret_task = http.SharePointOnlineAuthAsync(siteUrl, username, password, extraInfo);
Introduced in version 9.5.0.73

Creates an asynchronous task to call the SharePointOnlineAuth method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
SleepMs
# millisec is an integer
http.SleepMs(millisec);

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

top
SynchronousRequest
# returns a CkHttpResponse
# domain is a string
# port is an integer
# ssl is a boolean
# req is a CkHttpRequest
ret_httpResponse = http.SynchronousRequest(domain, port, ssl, req);

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)
# returns a CkTask
# domain is a string
# port is an integer
# ssl is a boolean
# req is a CkHttpRequest
ret_task = http.SynchronousRequestAsync(domain, port, ssl, req);

Creates an asynchronous task to call the SynchronousRequest method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
UrlDecode
# str is a string
# outStr is a CkString (output)
status = http.UrlDecode(str, outStr);
retStr = http.urlDecode(str);

URL decodes a string.

Returns true for success, false for failure.

top
UrlEncode
# str is a string
# outStr is a CkString (output)
status = http.UrlEncode(str, outStr);
retStr = http.urlEncode(str);

URL encodes a string.

Returns true for success, false for failure.

top
VerifyTimestampReply
# timestampReply is a CkBinData
# tsaCert is a CkCert
retInt = http.VerifyTimestampReply(timestampReply, tsaCert);
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.

top
XmlRpc
# urlEndpoint is a string
# xmlIn is a string
# outStr is a CkString (output)
status = http.XmlRpc(urlEndpoint, xmlIn, outStr);
retStr = http.xmlRpc(urlEndpoint, xmlIn);

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 true for success, false for failure.

More Information and Examples
top
XmlRpcAsync (1)
# returns a CkTask
# urlEndpoint is a string
# xmlIn is a string
ret_task = http.XmlRpcAsync(urlEndpoint, xmlIn);

Creates an asynchronous task to call the XmlRpc method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top
XmlRpcPut
# urlEndpoint is a string
# xmlIn is a string
# outStr is a CkString (output)
status = http.XmlRpcPut(urlEndpoint, xmlIn, outStr);
retStr = http.xmlRpcPut(urlEndpoint, xmlIn);

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

Returns true for success, false for failure.

top
XmlRpcPutAsync (1)
# returns a CkTask
# urlEndpoint is a string
# xmlIn is a string
ret_task = http.XmlRpcPutAsync(urlEndpoint, xmlIn);

Creates an asynchronous task to call the XmlRpcPut method with the arguments provided. (Async methods are available starting in Chilkat v9.5.0.52.)

Returns nil on failure

top