Http Lianja Reference Documentation
Http
Current Version: 11.1.0
Class for sending HTTP requests and receiving server responses.
- Supports GET, POST, HEAD, PUT, DELETE, WebDav, and custom HTTP request methods.
- HTTP Authentication: Basic, NTLM, Digest, Negotiate
- HTTPS (SSL/TLS) with client-side certificate capabilities.
- Cookie caching, auto-resend, persisting to XML files.
- Content caching.
- Supports HTTP proxies
- Auto-follow redirects if desired.
- Amazon S3 methods.
- XML HTTP Request
- HTTP file upload capabilities
- Asynchronous features -- putting HTTP requests in background threads.
- Supports SOCK5/SOCKS4 proxies.
- IPv6 capable.
Object Creation
loObject = createobject("CkHttp")
Properties
AbortCurrent
When set to .T.
, 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 .F.
when the next method is called. When the abort occurs, this property is reset to .F.
. Both synchronous and asynchronous method calls can be aborted. (A synchronous method call could be aborted by setting this property from a separate thread.)
Accept
This property sets the Accept
header for all HTTP requests, except those sent by the HttpReq
and HttpSReq
methods that use headers from an HttpRequest
object.
By default, it is set to */*
.
Setting this property is the same as calling SetRequestHeader
with Accept
as the header field name.
The Accept
HTTP header is sent by the client (your application) to tell the server which content types (MIME types) it can handle in the response.
For example, the following means only a JSON response is accepted:
Accept: application/json
AllowGzip
If .T.
then the Accept-Encoding: gzip
is automatically added for all HTTP requests, except those made using the HttpReq
and HttpSReq
methods that use headers from an HttpRequest object.
The default value is .T.
.
The Accept-Encoding
HTTP header is sent by the client to tell the server which compression algorithms it supports for the response body.
Example:
Accept-Encoding: gzip, deflate
This means the client can handle responses compressed with gzip or deflate.
If this property is set to .F.
, then the Accept-Encoding
header is added, but the value is empty, like this:
Accept-Encoding:
It means the client explicitly does not accept any content codings (no compression, no transformations).
- An absent
Accept-Encoding
header means the client will accept any encoding (server chooses, oftengzip
). - An empty
Accept-Encoding
header means only the “identity” encoding (i.e., uncompressed) is acceptable.
The SetRequestHeader
method can be called with Accept-Encoding
as the header field name to explicitly set the Accept-Encoding
header. Note: Chilkat does not accept Brotli responses. Do not include br
in the list of encodings for this header.
The RemoveRequestHeader
can be called to explicit omit the Accept-Encoding
header field from HTTP requests.
AllowHeaderFolding
When set to .F.
, MIME header folding is not applied to request headers automatically. By default, this setting is .T.
. This property exists for rare instances when a server cannot properly handle folded MIME headers.
MIME header folding allows long header lines to be split across multiple lines for readability.
A folded line begins with whitespace (space or tab), which signals continuation.
Unfolded (single line):
Subject: This is a very long subject line that needs to be wrapped across lines
Folded (wrapped for transport):
Subject: This is a very long subject line that needs to be wrapped across lines
When received, the folded version is unfolded back into a single line by removing the CRLF + leading whitespace.
topAuthSignature
This property can be set to a JSON string containing the required information to add an HTTP Signature
in the following format:
Authorization: Signature keyId="my-key-1", algorithm="hmac-sha256", headers="(request-target) host date", signature="Base64OfSignature"
See the linked example below for details.
AuthToken
Applications can set this property to the OAuth2
access_token
value to be sent in the Authorization: Bearer {access_token}
header for all requests. For OAuth1.0a
tokens, use the OAuthToken
property instead.
Starting from Chilkat v10.1.2
, this method can also accept a JSON string
containing details needed for automatic OAuth2 access token retrieval via the Client Credentials
flow. The JSON must include the client secret
, client ID
, token endpoint
, and scope(s)
. See the example below for guidance. This feature is compatible with any OAuth2 provider that supports the client credentials flow.
AutoAddHostHeader
When set to .T.
(the default), the Host
header is automatically added to all requests. The domain for the Host
header is taken from the URL passed in a method's arguments.
The Host
HTTP header specifies the hostname (and optional port) of the server the client is trying to reach.
Example:
Host: www.example.com
It’s required in HTTP/1.1 so a server can distinguish between multiple sites (virtual hosts) on the same IP address.
topAwsAccessKey
The AWS Access Key to be used with the Amazon S3 methods listed below.
topAwsEndpoint
Specify the regional endpoint (domain) for Amazon S3
method calls. The default is s3.amazonaws.com
, but you can use any valid Amazon S3 endpoint, such as s3-eu-west-1.amazonaws.com
, or endpoints from other S3-API compatible services.
AwsRegion
The AWS S3 region (e.g., us-east-1
, us-west-2
, eu-west-1
, eu-central-1
) defaults to us-east-1
. It is relevant only when the AwsSignatureVersion
property is set to 4 and ignored when set to 2.
AwsSecretKey
The AWS Secret Key to be used with the Amazon S3 methods listed below.
topAwsSessionToken
This is the AWS session token for temporary security credentials.
When you call AssumeRole
with AWS STS, you get temporary security credentials consisting of:
- Access key ID
- Secret access key
- Session token
The session token is an extra credential that must be included with the access key and secret key when signing requests. It proves the credentials came from STS and are valid for the limited session duration.
In short: The AWS session token is a required component of temporary STS credentials, used alongside the key pair to authenticate API calls.
topAwsSubResources
This property can be used to specify sub-resources to be included in the Amazon S3 methods listed below. For example, set the property to acl&versionId=value
to request the acl for a specific version of an object.
In Amazon S3, sub-resources are special query parameters you can append to an S3 object or bucket URL to access or manage specific properties or features beyond the main resource itself.
Examples:
- Bucket sub-resources:
?logging
,?website
,?lifecycle
,?policy
- Object sub-resources:
?acl
,?torrent
,?restore
,?tagging
So:
- Resource = the bucket or object itself (e.g.,
mybucket/photo.jpg
) - Sub-resource = a specific aspect or configuration of it, accessed with a query string (e.g.,
mybucket?logging
orphoto.jpg?acl
).
In short: S3 sub-resources let you operate on metadata/configuration of a bucket or object, not the content itself.
topBandwidthThrottleDown
If set to a non-zero value, this limits the download bandwidth to the specified maximum number of bytes per second. The default value is 0
.
BandwidthThrottleUp
If set to a non-zero value, this property limits the upload bandwidth to the specified maximum number of bytes per second. The default is 0
.
BasicAuth
To enable HTTP basic authentication, set this property to .T.
. The default value is .F.
.
Then basic authentication is enabled, Chilkat uses the Login
and Password
properties to include the Authorization: Basic {base64}
header in all requests.
HTTP Basic Authentication is a simple authentication scheme where the client sends a username and password encoded in Base64 in the Authorization
header.
Example:
Authorization: Basic dXNlcjpwYXNzd29yZA==
Here dXNlcjpwYXNzd29yZA==
is the Base64 of user:password
.
ClientIpAddress
A computer can have multiple network interfaces (e.g., Ethernet, Wi-Fi, VPN, virtual adapters). Each interface can have one or more IP addresses (IPv4 and/or IPv6).
If multiple IPs exist (say, 192.168.1.10
on Wi-Fi and 10.0.0.5
on Ethernet), the application can bind explicitly to either one, determining which interface and address the socket will use for communication.
This property can be set to explicitly bind the communications socket to an IP address.
The default value is the empty string, which means the application does not bind to a specific local IP before connecting and the OS network stack automatically picks the default source IP.
ConnectFailReason
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
ConnectTimeout
Determines the maximum time, in seconds, to wait for an HTTP server to accept a TCP connection before timing out. The default value is 30 seconds.
Note: A TLS connection always starts with a normal TCP connection (e.g., client connects to server on port 443). Once TCP is established, the client and server perform a TLS handshake: they exchange cryptographic messages to authenticate, agree on encryption keys, and set up a secure channel.
The ReadTimeout
property applies to TLS handshake communications. When establishing a TLS connection, the ConnectTimeout
governs the initial TCP connection, followed by the ReadTimeout
.
CookieDir
Designates a directory path for automatic cookie storage (such as "c:/myCookieDir"
or "/Users/example/myCookieDir"
) when the SaveCookies
property is set to .T.
. Cookies are saved in XML files, with one file per domain. Alternatively, set the value to memory
to cache cookies in memory.
The default value is the empty string, which means cookies are not saved regardless of the SaveCookies
setting.
DebugLogFilePath
If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. This logging helps identify the context and history of Chilkat calls leading up to any crash or hang, aiding in debugging.
Enabling the VerboseLogging property provides more detailed information. This property is mainly used for debugging rare instances where a Chilkat method call causes a hang or crash, which should generally not happen.
Possible causes of hangs include:
- A timeout property set to 0, indicating an infinite timeout.
- A hang occurring within an event callback in the application code.
- An internal bug in the Chilkat code causing the hang.
DefaultFreshPeriod
Sets the default freshness period (in minutes) for cached documents when the FreshnessAlgorithm
property is set to 0. The default value is 10080 (1 week).
HTTP GET web page caching properties and methods include: NumCacheRoots
, NumCacheLevels
, AddCacheRoot
, FetchFromCache
, UpdateCache
, MinFreshPeriod
, MaxFreshPeriod
,
FreshnessAlgorithm
, DefaultFreshPeriod
, LMFactor
,
IgnoreMustRevalidate
,
IgnoreNoCache
,
and LastFromCache
.
DigestAuth
Setting this property to .T.
causes the HTTP component to use digest authentication. The default value is .F.
.
FetchFromCache
Set to .T.
to enable fetching pages from cache whenever possible. The default value is .F.
. Only HTTP GET requests are cached. HTTP responses containing Set-Cookie
headers are never cached. A page is retrieved from the disk cache if it exists and is deemed fresh by the FreshnessAlgorithm
property. If the cached page is stale, the HTTP component will send a revalidate request and update the cache based on the response.
HTTP GET web page caching properties and methods include: NumCacheRoots
, NumCacheLevels
, AddCacheRoot
, FetchFromCache
, UpdateCache
, MinFreshPeriod
, MaxFreshPeriod
,
FreshnessAlgorithm
, DefaultFreshPeriod
, LMFactor
,
IgnoreMustRevalidate
,
IgnoreNoCache
,
and LastFromCache
.
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 .T.
.
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 .T.
.
FollowRedirects
If true, then 301, 302, 303, 307, and 308 redirects are automatically followed when calling QuickGet and QuickGetStr. FollowRedirects is true by default.
topFreshnessAlgorithm
To determine the freshness of a cached HTTP GET response, the freshness algorithm is employed. By default, it uses the LM-factor
algorithm, which is activated when the FreshnessAlgorithm
is set to 1
. The LMFactor
property, ranging from 1 to 100, specifies the percentage of the time since the last modification date of the HTML page that the page remains fresh. For instance, if the LMFactor is 50 and the page was last modified 10 days ago, it will expire after 5 days (50% of 10 days). This applies only to HTTP responses without explicit expiration information. If the FreshnessAlgorithm is set to 0
, a constant expiry period, defined by the DefaultFreshPeriod
property, is applied.
HTTP GET web page caching properties and methods include: NumCacheRoots
, NumCacheLevels
, AddCacheRoot
, FetchFromCache
, UpdateCache
, MinFreshPeriod
, MaxFreshPeriod
,
FreshnessAlgorithm
, DefaultFreshPeriod
, LMFactor
,
IgnoreMustRevalidate
,
IgnoreNoCache
,
and LastFromCache
.
IgnoreMustRevalidate
If an HTTP response includes the Cache-Control: must-revalidate
header, it indicates that the server requires the client to revalidate the page with the server rather than serving it directly from the cache. However, if this property is set to .T.
, the page will be served directly from the cache without revalidation until it expires. The defautl value of this property is .F.
.
HTTP GET web page caching properties and methods include: NumCacheRoots
, NumCacheLevels
, AddCacheRoot
, FetchFromCache
, UpdateCache
, MinFreshPeriod
, MaxFreshPeriod
,
FreshnessAlgorithm
, DefaultFreshPeriod
, LMFactor
,
IgnoreMustRevalidate
,
IgnoreNoCache
,
and LastFromCache
.
IgnoreNoCache
Some HTTP responses include headers indicating the page should not be cached. Chilkat HTTP will follow these instructions unless this property is set to .T.
. The default value of this property is .F.
.
HTTP GET web page caching properties and methods include: NumCacheRoots
, NumCacheLevels
, AddCacheRoot
, FetchFromCache
, UpdateCache
, MinFreshPeriod
, MaxFreshPeriod
,
FreshnessAlgorithm
, DefaultFreshPeriod
, LMFactor
,
IgnoreMustRevalidate
,
IgnoreNoCache
,
and LastFromCache
.
KeepResponseBody
If .T.
, 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 .F.
.
LastContentType
The content-type of the last HTTP response received by the HTTP component.
topLastErrorHtml
Provides HTML-formatted information about the last called method or property. If a method call fails or behaves unexpectedly, check this property for details. Note that information is available regardless of the method call's success.
topLastErrorText
Provides plain text information about the last called method or property. If a method call fails or behaves unexpectedly, check this property for details. Note that information is available regardless of the method call's success.
LastErrorXml
Provides XML-formatted information about the last called method or property. If a method call fails or behaves unexpectedly, check this property for details. Note that information is available regardless of the method call's success.
topLastFromCache
.T.
if the last GET was fetched from cache.
HTTP GET web page caching properties and methods include: NumCacheRoots
, NumCacheLevels
, AddCacheRoot
, FetchFromCache
, UpdateCache
, MinFreshPeriod
, MaxFreshPeriod
,
FreshnessAlgorithm
, DefaultFreshPeriod
, LMFactor
,
IgnoreMustRevalidate
,
IgnoreNoCache
,
and LastFromCache
.
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.
topLastMethodSuccess
Indicates the success or failure of the most recent method call: .T.
means success, .F.
means failure. This property remains unchanged by property setters or getters. This method is present to address challenges in checking for null or Nothing returns in certain programming languages. Note: This property does not apply to methods that return integer values or to boolean-returning methods where the boolean does not indicate success or failure.
LastModDate
The value of the Last-Modified header in the last HTTP response received by the HTTP component.
topLastResponseBody
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 .T.
.
LastResponseHeader
The entire response header for the last HTTP response received by the HTTP component (for methods that do not return an HttpResponse object).
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.
topLastStatusText
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.
topLMFactor
The LMFactor is an integer between 1 and 100 that specifies the percentage of time from an HTTP page's last-modified date to be used as the freshness period. The default is 25. For instance, if a page's last-modified date is 4 weeks ago and LMFactor is set to 25, the page will remain fresh in the cache for 1 week (25% of 4 weeks).
HTTP GET web page caching properties and methods include: NumCacheRoots
, NumCacheLevels
, AddCacheRoot
, FetchFromCache
, UpdateCache
, MinFreshPeriod
, MaxFreshPeriod
,
FreshnessAlgorithm
, DefaultFreshPeriod
, LMFactor
,
IgnoreMustRevalidate
,
IgnoreNoCache
,
and LastFromCache
.
Login
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 .T.
. 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 .T.
(BasicAuth, DigestAuth, NtlmAuth), Chilkat will automatically add the Authorization: ...
header in the correct format.
LoginDomain
The optional domain name to be used with NTLM / Negotiate authentication.
topMaxConnections
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.
topMaxFreshPeriod
Sets a time limit for how long a document can remain fresh in the cache, measured in minutes, with a default value of 525,600 minutes (equivalent to 1 year).
HTTP GET web page caching properties and methods include: NumCacheRoots
, NumCacheLevels
, AddCacheRoot
, FetchFromCache
, UpdateCache
, MinFreshPeriod
, MaxFreshPeriod
,
FreshnessAlgorithm
, DefaultFreshPeriod
, LMFactor
,
IgnoreMustRevalidate
,
IgnoreNoCache
,
and LastFromCache
.
MaxResponseSize
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.
topMaxUrlLen
The Http class will automatically fail any URL longer than this length. The default MaxUrlLen is 2000 characters.
topMimicFireFox
If set to .T.
, then the appropriate headers to mimic Mozilla/FireFox are automatically added to requests sent via the QuickGet and QuickGetStr methods.
MimicIE
If set to .T.
, then the appropriate headers to mimic Internet Explorer are automatically added to requests sent via the QuickGet and QuickGetStr methods.
MinFreshPeriod
Sets the minimum time a document stays fresh in the cache, with a default of 30 minutes.
HTTP GET web page caching properties and methods include: NumCacheRoots
, NumCacheLevels
, AddCacheRoot
, FetchFromCache
, UpdateCache
, MinFreshPeriod
, MaxFreshPeriod
,
FreshnessAlgorithm
, DefaultFreshPeriod
, LMFactor
,
IgnoreMustRevalidate
,
IgnoreNoCache
,
and LastFromCache
.
NegotiateAuth
Set this property equal to .T.
for Negotiate authentication.
Note: The NegotiateAuth property is only available for the Microsoft Windows operating system.
NtlmAuth
Setting this property to .T.
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 .F.
.
NumCacheLevels
This setting determines the directory levels used under each cache root. The default value is 0, meaning cached HTML pages are stored directly in the cache root directory.
- Level 0: Cached pages are stored in the cache root directory.
- Level 1: Cached pages go into one of 255 subdirectories (0 to 255) under the cache root.
- Level 2: Two levels of subdirectories (0-255/0-255) are created under each cache root.
The HTTP class automatically creates these subdirectories as needed. Multiple directory levels help prevent issues caused by having too many files in a single directory.
HTTP GET web page caching properties and methods include: NumCacheRoots
, NumCacheLevels
, AddCacheRoot
, FetchFromCache
, UpdateCache
, MinFreshPeriod
, MaxFreshPeriod
,
FreshnessAlgorithm
, DefaultFreshPeriod
, LMFactor
,
IgnoreMustRevalidate
,
IgnoreNoCache
,
and LastFromCache
.
NumCacheRoots
Specifies the number of established cache roots used by the HTTP cache to distribute the disk cache across multiple directories. Each cache root is an absolute directory path, set using the AddCacheRoot
method.
HTTP GET web page caching properties and methods include: NumCacheRoots
, NumCacheLevels
, AddCacheRoot
, FetchFromCache
, UpdateCache
, MinFreshPeriod
, MaxFreshPeriod
,
FreshnessAlgorithm
, DefaultFreshPeriod
, LMFactor
,
IgnoreMustRevalidate
,
IgnoreNoCache
,
and LastFromCache
.
OAuth1
If .T.
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.
OAuthBodyHash
When set to .T.
, the oauth_body_hash
, which contains the SHA-256
hash of the HTTP request body, is automatically included in the OAuth1.0a Authorization header
.
For example:
Authorization: OAuth oauth_consumer_key="***", oauth_nonce="A2E91C3B53E0BD7FBF71F441336679E358DDCEEE", oauth_body_hash="a5kPTsDwUwmBjC0voNlAAvM6YoaRS5X7sTO49jl3/h8=", oauth_timestamp="1756324932", oauth_signature_method="RSA-SHA256", oauth_version="1.0", oauth_signature="****"
This property is only used when the OAuth1
property equals .T.
.
OAuthCallback
The OAuth 1.0a
callback URL. Defaults to oob
.
This property is only used when the OAuth1
property equals .T.
.
OAuthConsumerKey
The OAuth1.0a
consumer key to be used in the oauth_consumer_key
parameter of the Authorization
header.
This property is only used when the OAuth1
property equals .T.
.
OAuthConsumerSecret
The consumer secret to be used in computing the contents of the OAuth1.0a
Authorization
header.
This property is only used when the OAuth1
property equals .T.
.
OAuthRealm
The OAuth1.0a realm
to be used in the Authorization
header.
The OAuth 1.0a realm parameter is an optional, descriptive string in the Authorization header that indicates the protected resources’ scope. It is not required, not included in the signature, and rarely used in real-world APIs. Most modern OAuth 1.0a integrations ignore it completely.
This property is only used when the OAuth1
property equals .T.
.
OAuthSigMethod
Specify the oauth_signature_method
parameter in the OAuth 1.0a Authorization header
. The default method is HMAC-SHA1
, but it can be set to HMAC-SHA256
, RSA-SHA1
, or RSA-SHA256
. For RSA
methods, provide an RSA private key using the SetOAuthRsaKey
method.
This property is only used when the OAuth1
property equals .T.
.
Note that RSA-SHA256 is supported from Chilkat v9.5.0.56 onwards.
topOAuthToken
The value to be used for the oauth_token
parameter in the OAuth1.0a
Authorization
header.
This property is only used when the OAuth1
property equals .T.
.
OAuthTokenSecret
The OAuth1.0a
token secret to be used in computing the Authorization header.
This property is only used when the OAuth1
property equals .T.
.
OAuthVerifier
The value to be used for the verifier to be used in the oauth_verifier
parameter of the OAuth1.0a
Authorization
header.
This property is only used when the OAuth1
property equals .T.
.
Password
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 .T.
. 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 .T.
(BasicAuth, DigestAuth, NtlmAuth), Chilkat will automatically add the Authorization: ...
header in the correct format.
PreferIpv6
If .T.
, then use IPv6 over IPv4 when both are supported for a particular domain. The default value of this property is .F.
, which will choose IPv4 over IPv6.
ProxyAuthMethod
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.
topProxyDirectTls
Set to .T.
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 .F.
.
ProxyDomain
The domain name of a proxy host if an HTTP proxy is used. This can also be set to an IP address.
ProxyLogin
If an HTTP proxy is used and it requires authentication, this property specifies the HTTP proxy login.
topProxyLoginDomain
The NTLM authentication domain (optional) if NTLM authentication is used.
topProxyPassword
If an HTTP proxy is used and it requires authentication, this property specifies the HTTP proxy password.
ProxyPort
The port number of a proxy server if an HTTP proxy is used.
topReadTimeout
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.
topReceivedCertReq
Indicates whether the last HTTPS connection received a TLS CertificateRequest handshake message indicating that the server may require a client certificate.
topRedirectVerb
Indicates the HTTP verb, such as GET, POST, PUT, etc. to be used for a redirect when the FollowRedirects property is set to .T.
. 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.
topRequiredContentType
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.
RequireHostnameMatch
If .T.
, then the hostname/domain in the URL must match at least one of the entries in the server certificate's SAN. A SAN (Subject Alternative Name) field in an SSL/TLS certificate contains a list of additional domain names, subdomains, IP addresses, or other identifiers that the certificate is valid for.
In actuality, it is the SNI hostname in the TLS handshake that must match a SAN entry. By default, Chilkat uses the hostname from the URL as the SNI hostname. An application can explicitly set the SNI hostname via the SniHostname
property, which would be typical if connecting via an IP address. See the example below.
The default value is .F.
.
RequireSslCertVerify
If .T.
, 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 .F.
.
SaveCookies
If this property is .T.
, 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.
SendBufferSize
The buffer size to be used with the underlying TCP/IP socket for sending. The default value is 65535.
topSendCookies
If .T.
, then cookies previously persisted to the CookiesDir are automatically added to all HTTP requests. Only cookies matching the domain and path are added.
SessionLogFilename
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.
SniHostname
Sets the SNI hostname for the TLS ClientHello. This property is usually necessary only when the domain is specified by an IP address and an SNI hostname is required. By default Chilkat uses the hostname in the URL for the SNI hostname in the TLS ClientHello extension automatically.
SocksHostname
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).
SocksPassword
The SOCKS5 password (if required). The SOCKS4 protocol does not include the use of a password, so this does not apply to SOCKS4.
topSocksPort
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).
topSocksUsername
The SOCKS4/SOCKS5 proxy username. This property is only used if the SocksVersion property is set to 4 or 5).
SocksVersion
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.
SoRcvBuf
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.
SoSndBuf
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.
SslAllowedCiphers
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_SHATo 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
SslProtocol
Selects the SSL/TLS protocol version to be used for connections. Possible values are:
defaultThe default value is
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
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
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.)
topTlsCipherSuite
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.
topTlsPinSet
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.
TlsVersion
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
.
UncommonOptions
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.
UpdateCache
Set this property to .T.
to automatically updated with HTTP GET request responses. Only HTTP GET requests are cached. HTTP responses containing Set-Cookie
headers are never cached. The default value is .F.
.
HTTP GET web page caching properties and methods include: NumCacheRoots
, NumCacheLevels
, AddCacheRoot
, FetchFromCache
, UpdateCache
, MinFreshPeriod
, MaxFreshPeriod
,
FreshnessAlgorithm
, DefaultFreshPeriod
, LMFactor
,
IgnoreMustRevalidate
,
IgnoreNoCache
,
and LastFromCache
.
UseIEProxy
If .T.
, 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.
UserAgent
This property sets the User-Agent
header for all HTTP requests, except those sent by the HttpReq
and HttpSReq
methods that use headers from an HttpRequest
object.
By default, it is set to an empty string, meaning no User-Agent
header is included.
Setting this property is the same as calling SetRequestHeader
with User-Agent
as the header field name.
The User-Agent
HTTP header is sent by the client to identify the software making the request (browser, app, library, bot, etc.).
Example:
MyApp/1.1
Note: Some web servers reject requests that do not include a User-Agent
.
VerboseLogging
If set to .T.
, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. The default value is .F.
. Verbose logging should only be used for debugging. The potentially large quantity of logged information may adversely affect peformance.
Version
WasRedirected
Indicates whether the last HTTP request was redirected (i.e. the redirect was automatically followed). If FollowRedirects is .F.
and the response status code is 301, 302, 303, 307, or 308, then this property will remain .F.
but the FinalRedirectUrl will contain the redirect URL that was not automatically followed.
Methods
AddCacheRoot
Disk caching operates similarly to browser caching of web pages, but it focuses on downloading web pages rather than handling HTTP requests to a REST API.
To activate disk caching, invoke the method at least once. Use the AddCacheRoot
method and provide a file path (e.g., D:\MyHttpCache\
) to set the root directory. To distribute the cache over multiple directories, call AddCacheRoot
multiple times with different directory paths.
HTTP GET web page caching properties and methods include: NumCacheRoots
, NumCacheLevels
, AddCacheRoot
, FetchFromCache
, UpdateCache
, MinFreshPeriod
, MaxFreshPeriod
,
FreshnessAlgorithm
, DefaultFreshPeriod
, LMFactor
,
IgnoreMustRevalidate
,
IgnoreNoCache
,
and LastFromCache
.
ClearHeaders
ClearInMemoryCookies
Clears all in-memory cookies accumulated while the SaveCookies
property was set to .T.
and the CookieDir
was set to memory
.
ClearUrlVars
CloseAllConnections
Closes all remaining open HTTP connections.
An HTTP object can hold up to 10 connections. If a server response lacks a Connection: Close
header, the connection stays open and may be reused for subsequent requests to the same host. Connections are identified by their IP address or domain name as specified in the URL. Once the limit of 10 connections is reached, the least recently used connection will be closed to open a new one.
Returns .T. for success, .F. for failure.
CloseAllConnectionsAsync (1)
Creates an asynchronous task to call the CloseAllConnections method with the arguments provided.
Returns .F.
on failure
CreateOcspRequest
Generates an OCSP request for one or more certificates using JSON (requestDetails) that specifies the request details. Refer to the examples in the provided links for guidance on constructing the JSON.
Note: After creating the OCSP request, send it to the server using HttpBd
with a POST
request and a Content-Type of application/ocsp-request
. Use ParseOcspReply
to analyze the OCSP response.
Returns .T. for success, .F. for failure.
CreateTimestampRequest
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 .T.
or .F.
. The reqTsaCert determines whether or not to request the TSA's certificate (.T.
= Yes, .F.
= No).
Note: After creating the timestamp request, send it to the server using HttpBd
with a POST
request and a Content-Type of application/timestamp-query
. Use VerifyTimestampReply
to analyze and verify the timestamp reply. See the examples linked below.
Returns .T. for success, .F. for failure.
DnsCacheClear
This function clears the Chilkat in-memory DNS cache, which stores hostname-to-IP address mappings to avoid repeated DNS lookups.
Note:
- The DNS cache is shared across all Chilkat objects, so clearing it will impact all such objects.
- Chilkat's DNS caching respects the TTL (time to live) of DNS records. If the TTL has expired since the initial lookup, Chilkat will perform a new DNS query and update the cache with the latest IP address.
Download
Downloads the content at the specified url and saves to a local file at localFilePath.
The download succeeds if the HTTP response status code is in the 200s. If unsuccessful, no output file is created. If the KeepResponseBody
property is set to .T.
, the server's error response will be available in the LastResponseBody
property.
The response status code will be available in the LastStatus
property.
Returns .T. for success, .F. for failure.
DownloadAsync (1)
Creates an asynchronous task to call the Download method with the arguments provided.
Returns .F.
on failure
DownloadAppend
Downloads the content at the specified url and appends to the local file at appendToPath. The file is created if it does not yet exist.
The download succeeds if the HTTP status code is in the 200s. If unsuccessful, no output file is created. If the KeepResponseBody
property is set to .T.
, the server's error response will be available in the LastResponseBody
property.
The response status code will be available in the LastStatus
property.
Returns .T. for success, .F. for failure.
DownloadAppendAsync (1)
Creates an asynchronous task to call the DownloadAppend method with the arguments provided.
Returns .F.
on failure
DownloadBd
Downloads content from url to binData, clearing binData beforehand. binData will only contain the downloaded bytes if the operation is successful.
The download succeeds if the HTTP status code is in the 200s. If unsuccessful, nothing is written to binData. If the KeepResponseBody
property is set to .T.
, the server's error response will be available in the LastResponseBody
property.
The response status code will be available in the LastStatus
property.
Returns .T. for success, .F. for failure.
DownloadBdAsync (1)
Creates an asynchronous task to call the DownloadBd method with the arguments provided.
Returns .F.
on failure
DownloadHash
Fetches the content at url and returns the encoded hash using the specified algorithm (hashAlgorithm: sha1
, sha256
, sha384
, sha512
, md2
, md5
, haval
, ripemd128
, ripemd160
, ripemd256
, or ripemd320
), and returns the hash encoded in the specified encoding (encoding: Base64
, modBase64
, Base32
, UU
, QP
for quoted-printable, URL
for URL-encoding, Hex
, Q
, B
, url_oath
, url_rfc1738
, url_rfc2396
, or url_rfc3986
).
Returns .F.
on failure
DownloadHashAsync (1)
Creates an asynchronous task to call the DownloadHash method with the arguments provided.
Returns .F.
on failure
DownloadSb
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 .T. for success, .F. for failure.
DownloadSbAsync (1)
Creates an asynchronous task to call the DownloadSb method with the arguments provided.
Returns .F.
on failure
ExtractMetaRefreshUrl
This is a convenience method for extracting the META refresh URL from HTML. For example, if the htmlContent contains a META refresh tag, such as:
<meta http-equiv="refresh" content="5;URL='https://example.com/'">Then the return value of this method would be
https://example.com/
.Returns .F.
on failure
G_SvcOauthAccessToken
Obtains a Google API OAuth2 access token for a service account. The iss is your service account email address ending in gserviceaccount.com
. The scope should be set to https://mail.google.com/
for GMail. The subEmail is your company email address, e.g. bob@yourcompany.com
. numSec is the number of seconds the access token will remain valid.
Returns .F.
on failure
G_SvcOauthAccessTokenAsync (1)
Creates an asynchronous task to call the G_SvcOauthAccessToken method with the arguments provided.
Returns .F.
on failure
G_SvcOauthAccessToken2
This method is similar to G_SvcOauthAccessToken
, but offers greater customization. The first three arguments of G_SvcOauthAccessToken are replaced with claimParams to allow for future expansion with name-value parameters. See the example below.
Returns .F.
on failure
G_SvcOauthAccessToken2Async (1)
Creates an asynchronous task to call the G_SvcOauthAccessToken2 method with the arguments provided.
Returns .F.
on failure
GenTimeStamp
Returns the current date and time in GMT (UTC) as a string formatted according to RFC 2616: Day, DD Mon YYYY HH:MM:SS GMT
. For example, Thu, 21 Aug 2025 11:17:31 GMT
.
Returns .F.
on failure
GetCacheRoot
Returns the Nth cache root, with indexing starting at 0. Cache roots are established by calling AddCacheRoot
one or more times. The number of established cache roots is in the NumCacheRoots
property.
Returns .F.
on failure
GetCookieXml
Returns cookies in XML format for a specified domain. Cookies are saved only if the SaveCookies
property is set to .T.
. If the CookieDir
property is set to memory,
cookies are stored in-memory.
Returns .F.
on failure
GetDomain
Utility method to extract the domain name from a URL. For instance, passing in https://chilkatsoft.com/refdoc/csharp.asp
will return chilkatsoft.com
.
Returns .F.
on failure
GetLastJsonData
Offers details about the most recent method called on this object instance, although some methods may not supply any information.
GetRequestHeader
Returns the value of a header field previously set by calling SetRequestHeader
.
Returns .F.
on failure
GetServerCert
Establishes an SSL/TLS connection with a web server to acquire its SSL certificate without retrieving any data, then disconnects.
Returns .T. for success, .F. for failure.
GetServerCertAsync (1)
Creates an asynchronous task to call the GetServerCert method with the arguments provided.
Returns .F.
on failure
GetUrlPath
Returns the path part of a URL. For example, the path part of https://example.com/folder/page?lang=en&sort=asc#section2
is /folder/page
.
Returns .F.
on failure
HasRequestHeader
Returns .T.
if the header field specified by name is included in all HTTP requests, except those sent by the HttpReq
or HttpSReq
methods.
HttpBd
Sends an HTTP request to url using the specified HTTP verb (e.g., POST
, PUT
, PATCH
). The body of the request is defined by bd, and the Content-Type header is set by contentType, with possible values like application/octet-stream
, application/pdf
, image/jpeg
, or application/zip
.
Returns .T. for success, .F. for failure.
HttpBdAsync (1)
Creates an asynchronous task to call the HttpBd method with the arguments provided.
Returns .F.
on failure
HttpFile
Sends an HTTP request to url using the specified HTTP verb (e.g., POST
, PUT
, PATCH
). The body of the request is streamed directly from localFilePath, and the Content-Type header is set by contentType, with possible values like application/octet-stream
, application/pdf
, image/jpeg
, or application/zip
.
Returns .T. for success, .F. for failure.
HttpFileAsync (1)
Creates an asynchronous task to call the HttpFile method with the arguments provided.
Returns .F.
on failure
HttpJson
Sends an HTTP request to url using the specified method in verb (e.g., POST, PUT, PATCH). The request body contains the JSON from json, with the content type set by contentType, such as application/json
or application/jsonrequest.
Returns .T. for success, .F. for failure.
HttpJsonAsync (1)
Creates an asynchronous task to call the HttpJson method with the arguments provided.
Returns .F.
on failure
HttpNoBody
Sends an HTTP request to url using the specified HTTP verb. The request body is empty. Verbs like GET
, HEAD
, and DELETE
usually do not include a body. No Content-Type
header is included because there is no content in the body of the request.
Returns .T. for success, .F. for failure.
HttpNoBodyAsync (1)
Creates an asynchronous task to call the HttpNoBody method with the arguments provided.
Returns .F.
on failure
HttpParams
Sends an HTTP verb request to url with query parameters from json. The request has an empty body, and therefore, no Content-Type
header is included. Typically, verbs such as GET
, HEAD
, and DELETE
do not require a body. Applications generally call this method with url, while passing query parameters separately in json. See the example below.
Returns .T. for success, .F. for failure.
HttpParamsAsync (1)
Creates an asynchronous task to call the HttpParams method with the arguments provided.
Returns .F.
on failure
HttpReq
Sends an HTTP request to url where the content of the request is defined by request. The path and query part of target is taken from the url instead of the path property within request.
scheme host path query ┌────┐ ┌─────────┐┌──────────────┐ ┌────────┐ https://example.com/docs/index.html?search=test
Returns .T. for success, .F. for failure.
HttpReqAsync (1)
Creates an asynchronous task to call the HttpReq method with the arguments provided.
Returns .F.
on failure
HttpSb
Sends an HTTP request to url using the specified verb (e.g., POST
, PUT
, PATCH
). The request body contains the text passed in sb, and the content type is specified by contentType (e.g., text/xml
, application/json
). The charset defines the text encoding, such as utf-8
or iso-8859-1
.
Returns .T. for success, .F. for failure.
HttpSbAsync (1)
Creates an asynchronous task to call the HttpSb method with the arguments provided.
Returns .F.
on failure
HttpSReq
Sends an HTTP request to web server at domain:port using TLS if ssl equals .T.
. The content of the request, including the path part of the URL, query params, additional headers, and request body is defined by request.
Note: The domain should include only the domain (host), not the complete URL. The path and query params are defined in the request object.
scheme host path query ┌────┐ ┌─────────┐┌──────────────┐ ┌────────┐ https://example.com/docs/index.html?search=test
If successful, the response contains the response.
Returns .T. for success, .F. for failure.
HttpSReqAsync (1)
Creates an asynchronous task to call the HttpSReq method with the arguments provided.
Returns .F.
on failure
HttpStr
Sends an HTTP request to url using the specified verb (e.g., POST
, PUT
, PATCH
). The request body contains the text passed in bodyStr, and the content type is specified by contentType (e.g., text/xml
, application/json
). The charset defines the text encoding, such as utf-8
or iso-8859-1
.
Returns .T. for success, .F. for failure.
HttpStrAsync (1)
Creates an asynchronous task to call the HttpStr method with the arguments provided.
Returns .F.
on failure
LoadTaskCaller
OcspCheck
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
OcspCheckAsync (1)
Creates an asynchronous task to call the OcspCheck method with the arguments provided.
Returns .F.
on failure
ParseOcspReply
Parses an OCSP reply. Returns the following possible integer values:
- -1: The ocspReply does not contain a valid OCSP reply.
- 0: Successful - Response has valid confirmations..
- 1: Malformed request - Illegal confirmation request.
- 2: Internal error - Internal error in issuer.
- 3: Try later - Try again later.
- 4: Not used - This value is never returned.
- 5: Sig required - Must sign the request.
- 6: Unauthorized - Request unauthorized.
The binaryOCSP reply is provided in ocspReply. The replyData is populated with data parsed from ocspReply.
OCSP requests are created by calling CreateOcspRequest
.
QuickDeleteStr
This function sends an HTTP DELETE
request to a specified URL and returns the response body as a string.
The HTTP response code is stored in the LastStatus
property, while additional response details are available in properties such as LastResponseHeader
, LastResponseBody
, LastModDate
, and LastContentType
.
Returns .F.
on failure
QuickDeleteStrAsync (1)
Creates an asynchronous task to call the QuickDeleteStr method with the arguments provided.
Returns .F.
on failure
QuickGetBd
This function sends an HTTP GET
request to a specified URL, which can include query parameters, and returns the binary response body in binData.
The HTTP response code is stored in the LastStatus
property. Additional response details can be found in properties like LastResponseHeader
, LastModDate
, and LastContentType
.
A response code of 400 or higher indicates a failure. If the error response is text-based and the KeepResponseBody
property is .T.
, it will be available in the LastResponseBody
property.
Returns .T. for success, .F. for failure.
QuickGetBdAsync (1)
Creates an asynchronous task to call the QuickGetBd method with the arguments provided.
Returns .F.
on failure
QuickGetSb
This function sends an HTTP GET
request to a specified URL, which can include query parameters, and returns the text response body in sbContent. The existing content of sbContent, if any, is cleared and replaced with the downloaded content.
The response status code is stored in the LastStatus
property. Additional response details can be found in properties like LastResponseHeader
, LastModDate
, and LastContentType
.
If the response status code is >= 400, then this method returns .F.
, 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 .T. for success, .F. for failure.
QuickGetSbAsync (1)
Creates an asynchronous task to call the QuickGetSb method with the arguments provided.
Returns .F.
on failure
QuickGetStr
This function sends an HTTP GET
request to a specified URL, which can include query parameters, and returns the text response body.
The response status code is stored in the LastStatus
property. Additional response details can be found in properties like LastResponseHeader
, LastModDate
, and LastContentType
.
A response code of 400 or higher indicates a failure. If the error response is text-based and the KeepResponseBody
property is .T.
, it will be available in the LastResponseBody
property.
Returns .F.
on failure
QuickGetStrAsync (1)
Creates an asynchronous task to call the QuickGetStr method with the arguments provided.
Returns .F.
on failure
RemoveRequestHeader
Eliminates a header field from being included in all HTTP requests, except for those sent by the HttpReq
and HttpSReq
methods, which rely on header fields provided in an HttpRequest
object via method arguments.
RenderGet
Builds the GET request that would be sent if a method such as QuickGetStr
was called. Instead of sending the request, it returns the HTTP request that would have been sent.
Returns .F.
on failure
ResumeDownload
Resumes downloading content from url and saves it to a partially completed local file at targetFilename. If the file at targetFilename doesn't exist or is empty, this method functions the same as Download
.
The download succeeds if the HTTP response status code is in the 200s. If unsuccessful, no output file is created. If the KeepResponseBody
property is set to .T.
, the server's error response will be available in the LastResponseBody
property.
The response status code will be available in the LastStatus
property.
Returns .T. for success, .F. for failure.
ResumeDownloadAsync (1)
Creates an asynchronous task to call the ResumeDownload method with the arguments provided.
Returns .F.
on failure
ResumeDownloadBd
Resumes a download from where it left off, determined by the number of bytes in binData. This method can be called multiple times until the download is complete.
The download succeeds if the HTTP response status code is in the 200s. If unsuccessful, no output file is created. If the KeepResponseBody
property is set to .T.
, the server's error response will be available in the LastResponseBody
property.
The response status code will be available in the LastStatus
property.
Returns .T. for success, .F. for failure.
ResumeDownloadBdAsync (1)
Creates an asynchronous task to call the ResumeDownloadBd method with the arguments provided.
Returns .F.
on failure
S3_CreateBucket
Creates a new Amazon S3 bucket.
Note: You can add x-amz-*
headers, including metadata, to any S3 request by using SetRequestHeader
for each header. This applies to all S3 methods, even if not explicitly mentioned.
Returns .T. for success, .F. for failure.
S3_CreateBucketAsync (1)
Creates an asynchronous task to call the S3_CreateBucket method with the arguments provided.
Returns .F.
on failure
S3_DeleteBucket
Deletes an Amazon S3 bucket.
Note: Ensure the AwsEndpoint
property is set to the correct region if the bucket is outside us-east-1
, for example, eu-central-1
. For S3-compatible services like Wasabi
, always set the AwsEndpoint
, such as s3.wasabisys.com
or s3.eu-central-1.wasabisys.com
.
Returns .T. for success, .F. for failure.
S3_DeleteBucketAsync (1)
Creates an asynchronous task to call the S3_DeleteBucket method with the arguments provided.
Returns .F.
on failure
S3_DeleteObject
Deletes a remote file (object) on the Amazon S3 service.
Returns .T. for success, .F. for failure.
S3_DeleteObjectAsync (1)
Creates an asynchronous task to call the S3_DeleteObject method with the arguments provided.
Returns .F.
on failure
S3_DeleteObjects
Deletes several objects from a bucket with a single request. objectNames includes the object names (or keys
) to be deleted. To delete a specific object version, add a versionId to the object name, like this: SampleDocument.txt; VersionId=OYcLXagmS.WaD..oyH4KRguB95_YhLs7
. If successful, jsonResponse will contain the JSON response.
Returns .T. for success, .F. for failure.
S3_DeleteObjectsAsync (1)
Creates an asynchronous task to call the S3_DeleteObjects method with the arguments provided.
Returns .F.
on failure
S3_DownloadBd
Downloads a file from the Amazon S3 service into bd.
Returns .T. for success, .F. for failure.
S3_DownloadBdAsync (1)
Creates an asynchronous task to call the S3_DownloadBd method with the arguments provided.
Returns .F.
on failure
S3_DownloadFile
Downloads a file from the Amazon S3 service.
Note: Ensure the AwsEndpoint
property is set to the correct region if the bucket is outside us-east-1
, for example, eu-central-1
. For S3-compatible services like Wasabi
, always set the AwsEndpoint
, such as s3.wasabisys.com
or s3.eu-central-1.wasabisys.com
.
Returns .T. for success, .F. for failure.
S3_DownloadFileAsync (1)
Creates an asynchronous task to call the S3_DownloadFile method with the arguments provided.
Returns .F.
on failure
S3_DownloadString
Downloads a text file (object) from the Amazon S3 service and returns the content as a string. The charset specifies the character encoding, such as utf-8
, of the remote text object.
Note: Ensure the AwsEndpoint
property is set to the correct region if the bucket is outside us-east-1
, for example, eu-central-1
. For S3-compatible services like Wasabi
, always set the AwsEndpoint
, such as s3.wasabisys.com
or s3.eu-central-1.wasabisys.com
.
Returns .F.
on failure
S3_DownloadStringAsync (1)
Creates an asynchronous task to call the S3_DownloadString method with the arguments provided.
Returns .F.
on failure
S3_FileExists
Checks the existence of a remote file, returning:
- 1 if the file exists
- 0 if the file does not exist
- -1 if the check failed
- 2 if in asynchronous mode, indicating the background task started successfully
Note: Ensure the AwsEndpoint
property is set to the correct region if the bucket is outside us-east-1
, for example, eu-central-1
. For S3-compatible services like Wasabi
, always set the AwsEndpoint
, such as s3.wasabisys.com
or s3.eu-central-1.wasabisys.com
.
S3_FileExistsAsync (1)
Creates an asynchronous task to call the S3_FileExists method with the arguments provided.
Returns .F.
on failure
S3_GenPresignedUrl
This method generates a temporary pre-signed URL for Amazon S3. Before calling this method, ensure the following properties are set to valid values: AwsSecretKey
, AwsAccessKey
, and AwsRegion
. If the endpoint differs from s3.amazonaws.com
, set the AwsEndpoint
property accordingly.
httpVerb is the HTTP verb (e.g., GET
, PUT
, POST
, DELETE
). awsService is the name of the AWS service (e.g., s3
, s3-accelerate
). If useHttps is .T.
, the returned URL will start with https://
; otherwise, it will start with http://
.
The generated URL has this format:
https://<AwsEndpoint>/<bucket_name>/<path> ?X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=<AwsAccessKey>/<currentDate>/<AwsRegion>/<awsService>/aws4_request &X-Amz-Date=<currentDateTime> &X-Amz-Expires=<numSecondsValid> &X-Amz-SignedHeaders=host &X-Amz-Signature=<signature-value>
Returns .F.
on failure
S3_ListBucketObjects
Retrieve an XML-formatted list of objects in an Amazon S3 bucket, similar to a directory listing.
bucketPath can include URL-encoded parameters. For example, to list objects in a bucket named ChilkatABC
with a max-keys value of 2000
and a marker of xyz
, pass the following string as bucketPath to the S3_ListBucketObjects method:
ChilkatABC?max-keys=2000&marker=xyz
This method recognizes all parameters listed in the AWS documentation for bucket object listing: delimiter
, marker
, max-keys
, and prefix
. For further details, refer to Amazon's AWS online documentation.
Returns .F.
on failure
S3_ListBucketObjectsAsync (1)
Creates an asynchronous task to call the S3_ListBucketObjects method with the arguments provided.
Returns .F.
on failure
S3_ListBuckets
Retrieves the XML listing of the buckets for an Amazon S3 account.
Returns .F.
on failure
S3_ListBucketsAsync (1)
Creates an asynchronous task to call the S3_ListBuckets method with the arguments provided.
Returns .F.
on failure
S3_UploadBd
Uploads the contents of bd as a file to the Amazon S3 service.
Note: x-amz-*
headers, including metadata, can be added to any S3 request by adding each header with a call to SetRequestHeader
. This applies to all S3 methods, even if not explicitly stated.
Note: Ensure the AwsEndpoint
property is set to the correct region if the bucket is outside us-east-1
, for example, eu-central-1
. For S3-compatible services like Wasabi
, always set the AwsEndpoint
, such as s3.wasabisys.com
or s3.eu-central-1.wasabisys.com
.
Returns .T. for success, .F. for failure.
S3_UploadBdAsync (1)
Creates an asynchronous task to call the S3_UploadBd method with the arguments provided.
Returns .F.
on failure
S3_UploadFile
Uploads a file to the Amazon S3 service.
Note: x-amz-*
headers, including metadata, can be added to any S3 request by adding each header with a call to SetRequestHeader
. This applies to all S3 methods, even if not explicitly stated.
Note: Ensure the AwsEndpoint
property is set to the correct region if the bucket is outside us-east-1
, for example, eu-central-1
. For S3-compatible services like Wasabi
, always set the AwsEndpoint
, such as s3.wasabisys.com
or s3.eu-central-1.wasabisys.com
.
Returns .T. for success, .F. for failure.
S3_UploadFileAsync (1)
Creates an asynchronous task to call the S3_UploadFile method with the arguments provided.
Returns .F.
on failure
S3_UploadString
Uploads the content of objectContent as a file to Amazon S3. charset specifies the string's character encoding (byte representation).
Note: x-amz-*
headers, including metadata, can be added to any S3 request by adding each header with a call to SetRequestHeader
. This applies to all S3 methods, even if not explicitly stated.
Note: Ensure the AwsEndpoint
property is set to the correct region if the bucket is outside us-east-1
, for example, eu-central-1
. For S3-compatible services like Wasabi
, always set the AwsEndpoint
, such as s3.wasabisys.com
or s3.eu-central-1.wasabisys.com
.
Returns .T. for success, .F. for failure.
S3_UploadStringAsync (1)
Creates an asynchronous task to call the S3_UploadString method with the arguments provided.
Returns .F.
on failure
SetAuthPrivateKey
Sets the private key to be used with some forms of authentication. For example, this is used automatically add the Authorization header (Signature) for Amazon Pay
requests.
Returns .T. for success, .F. for failure.
SetAuthTokenSb
Sets the AuthToken
property. The sb contains the OAuth2 access token to be used.
Returns .T. for success, .F. for failure.
SetCookieXml
This method restores cookies for a specified domain. It requires that the cookies, previously obtained using the GetCookieXml
method, are stored in a persistent storage like a database or file. An application can then restore these cookies using this method.
Returns .T. for success, .F. for failure.
SetOAuthRsaKey
Sets the RSA key to be used with OAuth 1.0a
authentication when the OAuthSigMethod
is RSA-SHA256
or RSA-SHA1
.
Returns .T. for success, .F. for failure.
SetRequestHeader
Adds a header field to be included in all HTTP requests, except for those sent by the HttpReq
and HttpSReq
methods, which rely on header fields provided in an HttpRequest
object via method arguments. If the header field already exists, it is replaced.
Use the RemoveRequestHeader
method to delete a specific header. Setting a header field to an empty string will also remove it, unless the AllowEmptyHeaders
option in UncommonOptions
is used.
Avoid setting the Authorization
header manually. Instead, use the appropriate authorization properties such as Password
, AuthToken
, AuthSignature
, BasicAuth
, DigestAuth
, NtlmAuth
, OAuth1
, OAuthToken
, etc.
To add cookies, use the Cookie
header field format: Cookie: name1=value1; name2=value2; name3=value3
.
Do not manually set the Content-Length
header. Chilkat will automatically calculate and include Content-Length
when sending the HTTP request.
SetSecurePassword
Equivalent to setting the Password
property but offers a more secure method by using a secure string object.
Returns .T. for success, .F. for failure.
topSetSslCertRequirement
Enforces a requirement on the server's certificate. The reqName can be one of the following:
- SubjectDN
- SubjectCN
- IssuerDN
- IssuerCN
- SAN
The reqName specifies the part of the certificate, and the reqValue is the value that it must match exactly or with a wildcard (*), for example "*.example.com"
. If the server's certificate does not match, the SSL / TLS connection is aborted.
Returns .T. for success, .F. for failure.
SetSslClientCert
Facilitates the use of a client-side certificate for a TLS connection, enabling mutual authentication. In a standard TLS connection, the server alone presents a certificate during the handshake to verify its identity. With mutual TLS (mTLS), the client also presents a trusted certificate, allowing the server to authenticate the client's identity. This process enhances security by adding a layer of verification beyond just usernames, passwords, or tokens.
Returns .T. for success, .F. for failure.
SetSslClientCertPem
This is identical to the SetSslClientCert
method, but it allows the certificate with a private key to be in PEM format.
Returns .T. for success, .F. for failure.
SetSslClientCertPfx
This is identical to the SetSslClientCert
method, but enables you to provide a certificate with private key directly from a .pfx or .p12 file.
Returns .T. for success, .F. for failure.
SetUrlVar
Sets a variable's value for URL substitutions used in any method. Variables are formatted as {$varName}
in URLs, such as: https://graph.microsoft.com/v1.0/users/{$id}
.
Call ClearUrlVars
to unset all URL variables.
Returns .T. for success, .F. for failure.
SharePointOnlineAuth
This method authenticates with SharePoint Online
and if successful, sets a cookie which is used for all following SharePoint HTTP requests. Before using this method, ensure you configure the CookieDir
property to either memory
or a specific directory path to store the authentication cookie, which will then be automatically used for subsequent HTTP requests.
Using this method automatically sets the SaveCookies
and SendCookies
properties to .T.
, as these settings are necessary for SharePoint Online authentication.
To use the method, provide the following arguments:
- siteUrl: The URL, e.g., https://yourdomain.sharepoint.com/
- username: An email address, e.g., username@yourdomain.com
- password: The Sharepoint password.
- extraInfo: Can be an empty JSON object. Reserved for additional information if needed in the future.
Returns .T. for success, .F. for failure.
SharePointOnlineAuthAsync (1)
Creates an asynchronous task to call the SharePointOnlineAuth method with the arguments provided.
Returns .F.
on failure
SleepMs
This method makes the calling process sleep for a specified number of milliseconds.
topUrlDecode
UrlEncode
VerifyTimestampReply
Verifies a timestamp reply received from a timestamp authority (TSA). Returns the following possible integer values:
- -1: The timestampReply does not contain a valid timestamp reply.
- -2: The timestampReply is a valid timestamp reply, but failed verification using the public key of the tsaCert.
- 0: Granted and verified.
- 1: Granted and verified, with mods (see RFC 3161)
- 2: Rejected.
- 3: Waiting.
- 4: Revocation Warning
- 5: Revocation Notification
If the timestamp reply (timestampReply) is known to be from a trusted source, then the tsaCert may be empty. If tsaCert is empty (never loaded with a certificate), then the verification will use the certificate embedded in the timestamp reply.
The CreateTimestampRequest
method is used to create a timestamp request.
Deprecated
AcceptCharset
This property is deprecated and applications should instead call SetRequestHeader
with Accept-Charset
as the header field name.
This property sets the Accept-Charset
header for all HTTP requests, except those sent by the HttpReq
and HttpSReq
methods that use headers from an HttpRequest
object.
By default, it is set to an empty string, meaning no Accept-Charset
header is included.
AcceptLanguage
This property is deprecated and applications should instead call SetRequestHeader
with Accept-Language
as the header field name.
This property sets the Accept-Language
header for all HTTP requests, except those sent by the HttpReq
and HttpSReq
methods that use headers from an HttpRequest
object.
By default, it is set to an empty string, meaning no Accept-Language
header is included.
AwsSignatureVersion
This method is deprecated and will be removed in a future release of Chilkat. You should use AWS Signature Version 4, as there is no current reason to use Version 2. The only valid options are Versions 2 and 4, with Version 4 set as the default.
topConnection
This property is deprecated and applications should instead call SetRequestHeader
with Connection
as the header field name.
This property sets the Connection
header for all HTTP requests, except those sent by the HttpReq
and HttpSReq
methods that use headers from an HttpRequest
object.
By default, it is set to an empty string, meaning no Connection
header is included.
The Connection
HTTP header tells the server what to do with the network connection after the request/response.
Connection: keep-alive
→ keep the TCP connection open for reuse.Connection: close
→ close the connection after the response.
In short: It controls whether the client wants to reuse or close the TCP connection.
topReferer
This property is deprecated and applications should instead call SetRequestHeader
with Referer
as the header field name.
This property sets the Referer
header for all HTTP requests, except those sent by the HttpReq
and HttpSReq
methods that use headers from an HttpRequest
object.
By default, it is set to an empty string, meaning no Referer
header is included.
GetHead
Applications should instead call HttpNoBody
.
Sends an HTTP HEAD request for a URL and returns a response object. (Note: HEAD requests will never automatically follow redirects.)
Returns .F.
on failure
GetHeadAsync (1) (2)
Creates an asynchronous task to call the GetHead method with the arguments provided.
Returns .F.
on failure
GetServerSslCert
Applications should instead call GetServerCert
.
Initiates an SSL/TLS connection with a web server to obtain its SSL certificate (public key only). No data is retrieved from the web server; the method only connects, retrieves the certificate information, and then disconnects.
Returns .F.
on failure
GetServerSslCertAsync (1) (2)
Creates an asynchronous task to call the GetServerSslCert method with the arguments provided.
Returns .F.
on failure
LastJsonData
This method is deprecated. Call GetLastJsonData instead.
Provides information about what transpired in the last method called on this object instance. For many methods, there is no information. However, for some methods, details about what occurred can be obtained by getting the LastJsonData right after the method call returns.
Returns .F.
on failure
PBinaryBd
Applications should instead call HttpBd
.
The same as PBinary, but the data to be uploaded is passed in data.
Returns .F.
on failure
PBinaryBdAsync (1) (2)
Creates an asynchronous task to call the PBinaryBd method with the arguments provided.
Returns .F.
on failure
PFile
Applications should instead call HttpFile
.
Sends an HTTP/HTTPS request to the url. The verb can be POST
, PUT
, PATCH
, etc. The url can begin with http://
or https://
depending if TLS is desired. The body of the HTTP request is streamed directly from the localFilePath. The contentType is a content type such as image/gif
, application/pdf
, text/xml
, etc. If md5 is .T.
, 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 .T.
, 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 .F.
on failure
PFileAsync (1) (2)
Creates an asynchronous task to call the PFile method with the arguments provided.
Returns .F.
on failure
PostJson
Applications should instead call HttpStr
.
A simplified way of sending a JSON POST and receiving the JSON response. The HTTP response is returned in an HTTP response object. The content type of the HTTP request is application/json
. To send a JSON POST using a different content-type, call the PostJson2 method where the content type can be explicitly specified.
Returns .F.
on failure
PostJsonAsync (1) (2)
Creates an asynchronous task to call the PostJson method with the arguments provided.
Returns .F.
on failure
PostJson2
Applications should instead call HttpStr
.
The same as PostJson,except it allows for the content type to be explicitly provided. The PostJson method automatically uses application/jsonrequest
. If the application needs for the content type to be application/json
, or some other content type, then PostJson2 provides the means.
Returns .F.
on failure
PostJson2Async (1) (2)
Creates an asynchronous task to call the PostJson2 method with the arguments provided.
Returns .F.
on failure
PostJson3
Applications should instead call HttpJson
.
The same as PostJson2,except a JSON object is passed in for the request body.
Returns .F.
on failure
PostJson3Async (1) (2)
Creates an asynchronous task to call the PostJson3 method with the arguments provided.
Returns .F.
on failure
PostUrlEncoded
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 .F.
on failure
PostUrlEncodedAsync (1) (2)
Creates an asynchronous task to call the PostUrlEncoded method with the arguments provided.
Returns .F.
on failure
PostXml
Applications should instead call HttpStr
.
A simplified way of posting XML content to a web server. This method is good for making SOAP calls using HTTP POST. The xmlCharset should match the character encoding used in the xmlContent, which is typically utf-8
. The HTTP response is returned in an HTTP response object.
Important: This method sends the POST with a Content-Type
header value of application/xml
. In rare cases, a server might require the Content-Type header to be text/xml
. To use text/xml
instead of the default application/xml
, call SetRequestHeader(Content-Type
,text/xml
) prior to calling this method.
To use HTTPS simply pass an endpointUrl beginning with https://
instead of http://
. This applies to any Chilkat method where a URL is passed as an argument.
Returns .F.
on failure
PostXmlAsync (1) (2)
Creates an asynchronous task to call the PostXml method with the arguments provided.
Returns .F.
on failure
PText
Applications should instead call HttpStr
.
Sends an HTTP request to the url. The verb can be POST
, PUT
, PATCH
, etc. The body of the HTTP request contains the text passed in textData. The contentType is a content type such as text/xml
, application/json
, etc. If md5 is .T.
, 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 .T.
, 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 .F.
on failure
PTextAsync (1) (2)
Creates an asynchronous task to call the PText method with the arguments provided.
Returns .F.
on failure
PTextSb
Applications should instead call HttpSb
.
The same as PText, but the data to be uploaded is passed in textData.
Returns .F.
on failure
PTextSbAsync (1) (2)
Creates an asynchronous task to call the PTextSb method with the arguments provided.
Returns .F.
on failure
PutText
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 .T.
, 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 .T.
, 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 .F.
on failure
PutTextAsync (1)
Creates an asynchronous task to call the PutText method with the arguments provided.
Returns .F.
on failure
QuickGetObj
Applications should instead call HttpNoBody
.
Sends an HTTP GET request for a URL and returns the response object. If the SendCookies property is .T.
, matching cookies previously persisted to the CookiesDir are automatically included in the request. If the FetchFromCache property is .T.
, the page could be fetched directly from cache.
Returns .F.
on failure
QuickGetObjAsync (1) (2)
Creates an asynchronous task to call the QuickGetObj method with the arguments provided.
Returns .F.
on failure
QuickPutStr
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 .F.
on failure
QuickPutStrAsync (1)
Creates an asynchronous task to call the QuickPutStr method with the arguments provided.
Returns .F.
on failure
QuickRequest
Applications should instead call HttpNoBody
.
Sends an HTTP request with no body for a URL and returns the response object. The verb is typically GET
or DELETE
.
If the SendCookies property is .T.
, matching cookies previously persisted to the CookiesDir are automatically included in the request. If the FetchFromCache property is .T.
, the page could be fetched directly from cache.
Returns .F.
on failure
QuickRequestAsync (1) (2)
Creates an asynchronous task to call the QuickRequest method with the arguments provided.
Returns .F.
on failure
QuickRequestParams
Applications should instead call HttpParams
.
This is the same as the QuickRequest method, except query params can be provided as non-URL-encoded name/value members in the json.
Returns .F.
on failure
QuickRequestParamsAsync (1) (2)
Creates an asynchronous task to call the QuickRequestParams method with the arguments provided.
Returns .F.
on failure
S3_DeleteMultipleObjects
Applications should instead call S3_DeleteObjects
.
Deletes multiple objects from a bucket using a single HTTP request. The objectNames contains the names (also known as keys
) of the objects to be deleted. To delete a specific version of an object, append a versionId attribute to the object name. For example: SampleDocument.txt; VersionId=
OYcLXagmS.WaD..oyH4KRguB95_YhLs7
Returns .F.
on failure
S3_DeleteMultipleObjectsAsync (1) (2)
Creates an asynchronous task to call the S3_DeleteMultipleObjects method with the arguments provided.
Returns .F.
on failure
S3_GenerateUrl
This method creates a temporary pre-signed URL for Amazon S3 using AWS Signature V2
. Ensure that valid values are set for AwsSecretKey
and AwsAccessKey
before calling this method.
Note: This method only generates URLs for HTTP GET
requests, suitable for pasting into a browser address bar. It does not support generating URLs for other request types such as POST, PUT, or DELETE.
Returns .F.
on failure
S3_GenerateUrlV4
This method generates a temporary pre-signed URL for Amazon S3 using AWS Signature V4
. Before calling this method, ensure that the AwsSecretKey
, AwsAccessKey
, and AwsRegion
properties are set to valid values. If your endpoint differs from s3.amazonaws.com, set the AwsEndpoint
property accordingly.
awsService specifies the AWS service name, such as s3.
If useHttps is .T.
, the URL will start with https://
; otherwise, it will start with http://
.
Note: This method only generates URLs for HTTP GET
requests, which can be used in a browser address bar. It does not support generating URLs for other request types, such as POST, PUT, or DELETE.
A pre-signed URL has this format:
https://<AwsEndpoint>/<bucket_name>/<path> ?X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=<AwsAccessKey>/<currentDate>/<AwsRegion>/<awsService>/aws4_request &X-Amz-Date=<currentDateTime> &X-Amz-Expires=<numSecondsValid> &X-Amz-SignedHeaders=host &X-Amz-Signature=<signature-value>
Returns .F.
on failure
SynchronousRequest
Applications should instead call HttpSReq
.
Sends an explicit HttpRequest to an HTTP server and returns an HttpResponse object. The HttpResponse object provides full access to the response including all headers and the response body. This method may be used to send POST requests, as well as GET, HEAD, file uploads, and XMLHTTP. To send via HTTPS (i.e. TLS), set the ssl property = .T.
. Otherwise set it to .F.
.
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 .F.
on failure
SynchronousRequestAsync (1) (2)
Creates an asynchronous task to call the SynchronousRequest method with the arguments provided.
Returns .F.
on failure
XmlRpc
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 .F.
on failure
XmlRpcAsync (1)
Creates an asynchronous task to call the XmlRpc method with the arguments provided.
Returns .F.
on failure
XmlRpcPut
XmlRpcPutAsync (1)
Creates an asynchronous task to call the XmlRpcPut method with the arguments provided.
Returns .F.
on failure