Share via


HttpQueryInfo

A version of this page is also available for

Windows Embedded CE 6.0 R3

4/8/2010

This function queries for information about an HTTP request.

Syntax

BOOL WINAPI HttpQueryInfo(
  HINTERNET hRequest, 
  DWORD dwInfoLevel, 
  LPVOID lpBuffer, 
  LPDWORD lpdwBufferLength, 
  LPDWORD lpdwIndex
);

Parameters

  • dwInfoLevel
    [in] Specifies a combination of the attribute to query and the flags that modify the request. The following table shows the possible attribute values.

    Value Description

    HTTP_QUERY_ACCEPT

    Retrieves the acceptable media types for the response.

    HTTP_QUERY_ACCEPT_CHARSET

    Retrieves the acceptable character sets for the response.

    HTTP_QUERY_ACCEPT_ENCODING

    Retrieves the acceptable content-coding values for the response.

    HTTP_QUERY_ACCEPT_LANGUAGE

    Retrieves the acceptable natural languages for the response.

    HTTP_QUERY_ACCEPT_RANGES

    Retrieves the types of range requests that are accepted for a resource.

    HTTP_QUERY_AGE

    Retrieves the Age response-header field, which contains the sender's estimate of the amount of time since the response was generated at the origin server.

    HTTP_QUERY_ALLOW

    Receives the methods supported by the server.

    HTTP_QUERY_AUTHORIZATION

    Retrieves the authorization credentials used for a request.

    HTTP_QUERY_CACHE_CONTROL

    Retrieves the cache control directives.

    HTTP_QUERY_CONNECTION

    Retrieves any options that are specified for a particular connection and must not be communicated by proxies over further connections.

    HTTP_QUERY_COOKIE

    Retrieves any cookies associated with the request.

    HTTP_QUERY_CONTENT_BASE

    Retrieves the base URI for resolving relative URLs within the entity.

    HTTP_QUERY_CONTENT_DESCRIPTION

    Obsolete. Maintained for legacy application compatibility only.

    HTTP_QUERY_CONTENT_DISPOSITION

    Obsolete. Maintained for legacy application compatibility only.

    HTTP_QUERY_CONTENT_ENCODING

    Receives any additional content codings that have been applied to the entire resource.

    HTTP_QUERY_CONTENT_ID

    Receives the content identification.

    HTTP_QUERY_CONTENT_LANGUAGE

    Receives the language that the content is in.

    HTTP_QUERY_CONTENT_LENGTH

    Receives the size of the resource, in bytes.

    HTTP_QUERY_CONTENT_LOCATION

    Retrieves the resource location for the entity enclosed in the message.

    HTTP_QUERY_CONTENT_MD5

    Retrieves a MD5 digest of the entity-body for the purpose of providing an end-to-end message integrity check (MIC) for the entity-body.

    HTTP_QUERY_CONTENT_RANGE

    Retrieves the location in the full entity-body where the partial entity-body should be inserted and the total size of the full entity-body.

    HTTP_QUERY_CONTENT_TRANSFER_ENCODING

    Receives the additional content coding that has been applied to the resource.

    HTTP_QUERY_CONTENT_TYPE

    Receives the content type of the resource (such as text/html).

    HTTP_QUERY_COST

    No longer implemented.

    HTTP_QUERY_DATE

    Receives the date and time at which the message was originated.

    HTTP_QUERY_DERIVED_FROM

    No longer supported.

    HTTP_QUERY_ETAG

    Retrieves the entity tag for the associated entity.

    HTTP_QUERY_EXPIRES

    Receives the date and time after which the resource should be considered outdated.

    HTTP_QUERY_FORWARDED

    Obsolete. Maintained for legacy application compatibility only.

    HTTP_QUERY_FROM

    Retrieves the e-mail address for the human user who controls the requesting user agent if the From header is given.

    HTTP_QUERY_HOST

    Retrieves the Internet host and port number of the resource being requested.

    HTTP_QUERY_IF_MATCH

    Retrieves the contents of the If-Match request-header field.

    HTTP_QUERY_IF_MODIFIED_SINCE

    Retrieves the contents of the If-Modified-Since header.

    HTTP_QUERY_IF_NONE_MATCH

    Retrieves the contents of the If-None-Match request-header field.

    HTTP_QUERY_IF_RANGE

    Retrieves the contents of the If-Range request-header field. This header allows the client application to check if the entity related to a partial copy of the entity in the client application's cache has not been updated. If the entity has not been updated, send the parts that the client application is missing. If the entity has been updated, send the entire updated entity.

    HTTP_QUERY_IF_UNMODIFIED_SINCE

    Retrieves the contents of the If-Unmodified-Since request-header field.

    HTTP_QUERY_LINK

    Obsolete. Maintained for legacy application compatibility only.

    HTTP_QUERY_LAST_MODIFIED

    Receives the date and time at which the server believes the resource was last modified.

    HTTP_QUERY_LOCATION

    Retrieves the absolute URI used in a Location response-header.

    HTTP_QUERY_MAX

    Retrieves the maximum value of an HTTP_QUERY_* value.

    HTTP_QUERY_MAX_FORWARDS

    Retrieves the number of proxies or gateways that can forward the request to the next inbound server.

    HTTP_QUERY_MESSAGE_ID

    No longer implemented.

    HTTP_QUERY_MIME_VERSION

    Receives the version of the MIME protocol that was used to construct the message.

    HTTP_QUERY_ORIG_URI

    Obsolete. Maintained for legacy application compatibility only.

    HTTP_QUERY_PRAGMA

    Receives the implementation-specific directives that may apply to any recipient along the request/response chain.

    HTTP_QUERY_PROXY_AUTHENTICATE

    Retrieves the authentication scheme and realm returned by the proxy.

    HTTP_QUERY_PROXY_AUTHORIZATION

    Retrieves the header that is used to identify the user to a proxy that requires authentication.

    HTTP_QUERY_PUBLIC

    Receives methods available at this server.

    HTTP_QUERY_RANGE

    Retrieves the byte range of an entity.

    HTTP_QUERY_RAW_HEADERS

    Receives all the headers returned by the server. Each header is terminated by "\0". An additional "\0" terminates the list of headers.

    HTTP_QUERY_RAW_HEADERS_CRLF

    Receives all the headers returned by the server. Each header is separated by a carriage return/line feed (CR/LF) sequence.

    HTTP_QUERY_REFERER

    Receives the URI of the resource where the requested URI was obtained.

    HTTP_QUERY_REFRESH

    Obsolete. Maintained for legacy application compatibility only.

    HTTP_QUERY_REQUEST_METHOD

    Receives the verb that is being used in the request, typically GET or POST.

    HTTP_QUERY_RETRY_AFTER

    Retrieves the amount of time the service is expected to be unavailable.

    HTTP_QUERY_SERVER

    Retrieves information about the software used by the origin server to handle the request.

    HTTP_QUERY_SET_COOKIE

    Receives the value of the cookie set for the request.

    HTTP_QUERY_STATUS_CODE

    Receives the status code returned by the server.

    HTTP_QUERY_STATUS_TEXT

    Receives any additional text returned by the server on the response line.

    HTTP_QUERY_TITLE

    Obsolete. Maintained for legacy application compatibility only.

    HTTP_QUERY_TRANSFER_ENCODING

    Retrieves the type of transformation that has been applied to the message body so it can be correctly transferred between the sender and recipient.

    HTTP_QUERY_UPGRADE

    Retrieves the additional communication protocols that are supported by the server.

    HTTP_QUERY_URI

    Receives some or all of the Uniform Resource Identifiers (URIs) by which the Request-URI resource can be identified.

    HTTP_QUERY_USER_AGENT

    Retrieves information about the user agent that made the request.

    HTTP_QUERY_VARY

    Retrieves the header that indicates that the entity was selected from a number of available representations of the response using server-driven negotiation.

    HTTP_QUERY_VERSION

    Receives the last response code returned by the server.

    HTTP_QUERY_VIA

    Retrieves the intermediate protocols and recipients between the user agent and the server on requests, and between the origin server and the client on responses.

    HTTP_QUERY_WARNING

    Retrieves additional information about the status of a response that may not be reflected by the response status code.

    HTTP_QUERY_WWW_AUTHENTICATE

    Retrieves the authentication scheme and realm returned by the server.

    The following table shows modifiers that can be used with the information values.

    Value Description

    HTTP_QUERY_CUSTOM

    Causes HttpQueryInfo to search for the header name specified in lpvBuffer and store the header information in lpvBuffer.

    HTTP_QUERY_FLAG_COALESCE

    Not supported.

    HTTP_QUERY_FLAG_NUMBER

    Returns the data as a 32-bit number for headers whose value is a number, such as the status code.

    HTTP_QUERY_FLAG_REQUEST_HEADERS

    Queries request headers only.

    HTTP_QUERY_FLAG_SYSTEMTIME

    Returns the header value as a standard Win32 SYSTEMTIME structure, which does not require the application to parse the data. Use for headers whose value is a date/time string, such as "Last-Modified-Time".

  • lpBuffer
    [in, out] Long void pointer to the buffer that receives the information.
  • lpdwBufferLength
    [in, out] Long pointer to a value that contains the length of the data buffer. When the function returns, this parameter contains the address of a value specifying the length of the information written to the buffer. The following list shows the rules that apply when the function returns strings:

    • If the function succeeds, lpdwBufferLength specifies the length of the string, in characters, minus 1 for the terminating null.
    • If the function fails and ERROR_INSUFFICIENT_BUFFER is returned, lpdwBufferLength specifies the number of bytes that the application must allocate to receive the string.
  • lpdwIndex
    [in, out] Long pointer to a zero-based header index used to enumerate multiple headers with the same name. When calling the function, this parameter is the index of the specified header to return. When the function returns, this parameter is the index of the next header. If the next index cannot be found, ERROR_HTTP_HEADER_NOT_FOUND is returned.

Return Value

TRUE indicates success. FALSE indicates failure. To get extended error information, call GetLastError.

Remarks

HttpQueryInfo is used to return response or request headers from an HTTP request.

The following list shows the types of data you can retrieve from HttpQueryInfo:

  • strings (default)
  • SYSTEMTIME (for Data: Expires:, headers)
  • DWORD (for STATUS_CODE, CONTENT_LENGTH, and so on if HTTP_QUERY_INFO_NUMBER has been used)

Requirements

Header wininet.h
Library wininet.lib
Windows Embedded CE Windows CE 2.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

HttpOpenRequest
InternetOpen
WinInet Functions

Other Resources

SYSTEMTIME