HttpSendRequest
BOOL HttpSendRequest(
IN HINTERNET hHttpRequest,
IN LPCSTR lpszHeaders,
IN DWORD dwHeadersLength,
IN LPVOID lpOptional,
DWORD dwOptionalLength
);
Sends the specified request to the HTTP server.
Returns TRUE if successful, or FALSE otherwise. To get extended error information,
callGetLastError.
hHttpRequest
Open HTTP request handle returned by HttpOpenRequest.
lpszHeaders
Additional headers to be appended to the request. This parameter can be NULL if
there are no additional headers to append.
dwHeadersLength
Length, in characters, of the additional headers. If this parameter is -1L and
lpszHeaders is not NULL, the function assumes that lpszHeaders is zero-terminated
(ASCIIZ), and the length is calculated.
lpOptional
Address of any optional data to send immediately after the request headers. This
parameter is generally used for POST and PUT operations. The optional data can be
the resource or information being posted to the server. This parameter can be NULL
if there is no optional data to send.
dwOptionalLength
Length, in bytes, of the optional data. This parameter can be zero if there is no
optional data to send.
HttpSendRequest sends the specified request to the HTTP server and allows the client
to specify additional headers to send along with the request.
The function also lets the client specify optional data to send to the HTTP server
immediately following the request headers. This feature is generally used for "write"
operations such as PUT and POST.
After the request is sent, the status code and response headers from the HTTP server
are read. These headers are maintained internally and are available to client applications
through the HttpQueryInfo function.
An application can use the same HTTP request handle in multiple calls to HttpSendRequest,
but the application must read all data returned from the previous call before calling the
function again.
InternetOpenUrl
HINTERNET InternetOpenUrl(
IN HINTERNET hInternetSession,
IN LPCSTR lpszUrl,
IN LPCSTR lpszHeaders,
IN DWORD dwHeadersLength,
IN DWORD dwFlags,
IN DWORD dwContext
);
Begins reading a complete FTP, Gopher, or HTTP URL. Use InternetCanonicalizeUrl first if
the URL being used contains a relative URL and a base URL separated by blank spaces.
Returns a valid handle to the FTP, Gopher, or HTTP URL if the connection is successfully
established, or NULL if the connection fails. To get a specific error message, callGetLastError.
To determine why access to the service was denied, call InternetGetLastResponseInfo.
hInternetSession
Handle to the current Internet session. The handle must have been returned by a previous call
to InternetOpen.
lpszUrl
Address of a string that contains the URL to begin reading. Only URLs beginning with ftp:, gopher:,
http:, or https: are supported.
lpszHeaders
Address of a string that contains the headers to be sent to the HTTP server. (For more information,
see the description of the lpszHeaders parameter in the HttpSendRequest function.)
dwHeadersLength
Length, in characters, of the additional headers. If this parameter is -1L and lpszHeaders is not
NULL, lpszHeaders is assumed to be zero-terminated (ASCIIZ) and the length is calculated.
dwFlags
Action flags. Can be one of the following values:
INTERNET_FLAG_DONT_CACHE
Does not cache the data, either locally or in any gateways. Identical to the preferred value,
INTERNET_FLAG_NO_CACHE_WRITE.
INTERNET_FLAG_EXISTING_CONNECT
If possible, reuses the existing connections to the server for new requests generated by
InternetOpenUrl instead of creating a new session for each request. This flag is useful
only for FTP connections, since FTP is the only protocol that typically performs multiple
operations during the same session. The Win32 Internet API caches a single connection handle
for each HINTERNET handle generated by InternetOpen.
INTERNET_FLAG_HYPERLINK
Forces a reload if there was no Expires time and no Last-Modified time returned from the
server when determining whether to reload the item from the network.
INTERNET_FLAG_IGNORE_CERT_CN_INVALID
Disables Win32 Internet function checking of SSL/PCT-based certificates that are returned
from the server against the host name given in the request. Win32 Internet functions use a
simple check against certificates by comparing for matching host names and simple wildcarding
rules for HTTP requests.
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
Disables Win32 Internet function checking of SSL/PCT-based certificates for proper validity
dates for HTTP requests.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
Disables the ability of the Win32 Internet functions to detect this special type of redirect.
When this flag is used, Win32 Internet functions transparently allow redirects from HTTPS to
HTTP URLs.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
Disables the ability of the Win32 Internet functions to detect this special type of redirect.
When this flag is used, Win32 Internet functions transparently allow redirects from HTTP to
HTTPS URLs.
INTERNET_FLAG_KEEP_CONNECTION
Uses keep-alive semantics, if available, for the connection for HTTP requests. This flag is
required for Microsoft Network (MSN), NT LAN Manager (NTLM), and other types of authentication.
INTERNET_FLAG_MAKE_PERSISTENT
No longer supported.
INTERNET_FLAG_MUST_CACHE_REQUEST
Causes a temporary file to be created if the file cannot be cached. Identical to the preferred
value, INTERNET_FLAG_NEED_FILE.
INTERNET_FLAG_NEED_FILE
Causes a temporary file to be created if the file cannot be cached.
INTERNET_FLAG_NO_AUTH
Does not attempt authentication automatically for HTTP requests.
INTERNET_FLAG_NO_AUTO_REDIRECT
Does not automatically handle redirection for HTTP requests only.
INTERNET_FLAG_NO_CACHE_WRITE
Does not cache the data, either locally or in any gateways.
INTERNET_FLAG_NO_COOKIES
Does not automatically add cookie headers to requests, and does not automatically add returned
cookies to the cookie database for HTTP requests.
INTERNET_FLAG_NO_UI
Disables the cookie dialog box.
INTERNET_FLAG_PASSIVE
Uses passive FTP semantics for FTP files and directories.
INTERNET_FLAG_RAW_DATA
Returns the data as a GOPHER_FIND_DATA structure when retrieving Gopher directory information,
or as aWIN32_FIND_DATA structure when retrieving FTP directory information. If this flag is not
specified or if the call was made through a CERN proxy, InternetOpenUrl returns an HTML version
of the directory.
INTERNET_FLAG_PRAGMA_NOCACHE
Forces the request to be resolved by the origin server, even if a cached copy exists on the proxy.
INTERNET_FLAG_READ_PREFETCH
This flag is currently disabled.
INTERNET_FLAG_RELOAD
Gets the data from the wire even if it is locally cached.
INTERNET_FLAG_RESYNCHRONIZE
Reloads HTTP resources if the resource has been modified since the last time it was downloaded.
All FTP and Gopher resources are reloaded.
INTERNET_FLAG_SECURE
Requests secure transactions on the wire with SSL or PCT. This flag applies to HTTP requests only.
dwContext
Application-defined value that is passed, along with the returned handle, to any callback functions.
This is a general function that an application can use to retrieve data over any of the protocols
that the Win32 Internet functions support. This function is particularly useful when the application
does not need to access the particulars of a protocol, but only requires the data corresponding to a
URL. The InternetOpenUrl function parses the URL string, establishes a connection to the server, and
prepares to download the data identified by the URL. The application can then use InternetReadFile
(for files) or InternetFindNextFile (for directories) to retrieve the URL data. It is not necessary
to call InternetConnect before InternetOpenUrl.
InternetOpenUrl disables Gopher on ports less than 1024, except for port 70 (the standard Gopher port)
and port 105 (typically used for Central Services Organization [CSO] name searches).
Use InternetCloseHandle to close the handle returned from InternetOpenUrl. However, note that closing
the handle before all the URL data has been read results in the connection being terminated.