CHttpConnection Class
Manages your connection to an HTTP server.
Syntax
class CHttpConnection : public CInternetConnection
Members
Public Constructors
Name | Description |
---|---|
CHttpConnection::CHttpConnection | Creates a CHttpConnection object. |
Public Methods
Name | Description |
---|---|
CHttpConnection::OpenRequest | Opens an HTTP request. |
Remarks
HTTP is one of three Internet server protocols implemented by the MFC WinInet classes.
The class CHttpConnection
contains a constructor and one member function, OpenRequest, that manages connections to a server with an HTTP protocol.
To communicate with an HTTP server, you must first create an instance of CInternetSession, and then create a CHttpConnection object. You never create a CHttpConnection
object directly; rather, call CInternetSession::GetHttpConnection, which creates the CHttpConnection
object and returns a pointer to it.
To learn more about how CHttpConnection
works with the other MFC Internet classes, see the article Internet Programming with WinInet. For more information about connecting to servers using the other two supported Internet protocols, gopher and FTP, see the classes CGopherConnection and CFtpConnection.
Inheritance Hierarchy
CHttpConnection
Requirements
Header: afxinet.h
CHttpConnection::CHttpConnection
This member function is called to construct a CHttpConnection
object.
CHttpConnection(
CInternetSession* pSession,
HINTERNET hConnected,
LPCTSTR pstrServer,
DWORD_PTR dwContext);
CHttpConnection(
CInternetSession* pSession,
LPCTSTR pstrServer,
INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
LPCTSTR pstrUserName = NULL,
LPCTSTR pstrPassword = NULL,
DWORD_PTR dwContext = 1);
CHttpConnection(
CInternetSession* pSession,
LPCTSTR pstrServer,
DWORD dwFlags,
INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
LPCTSTR pstrUserName = NULL,
LPCTSTR pstrPassword = NULL,
DWORD_PTR dwContext = 1);
Parameters
pSession
A pointer to a CInternetSession object.
hConnected
A handle to an Internet connection.
pstrServer
A pointer to a string containing the server name.
dwContext
The context identifier for the CInternetConnection
object. For more information about dwContext, see the Remarks section.
nPort
The number that identifies the Internet port for this connection.
pstrUserName
Pointer to a null-terminated string that specifies the name of the user to sign in. If NULL, the default is anonymous.
pstrPassword
A pointer to a null-terminated string that specifies the password to use to sign in. If both pstrPassword and pstrUserName are NULL, the default anonymous password is the user's email name. If pstrPassword is NULL or an empty string, but pstrUserName is not NULL, a blank password is used. The following table describes the behavior for the four possible settings of pstrUserName and pstrPassword:
pstrUserName | pstrPassword | Username sent to FTP server | Password sent to FTP server |
---|---|---|---|
NULL or " " | NULL or " " | "anonymous" | User's email name |
Non-NULL String | NULL or " " | pstrUserName | " " |
NULL | Non-NULL String | ERROR | ERROR |
Non-NULL String | Non-NULL String | pstrUserName | pstrPassword |
dwFlags
Any combination of the INTERNET_FLAG_*
flags. See the table in the Remarks section of CHttpConnection::OpenRequest for a description of dwFlags values.
Remarks
You never create a CHttpConnection
directly. Rather, you create an object by calling CInternetSession::GetHttpConnection.
CHttpConnection::OpenRequest
Call this member function to open an HTTP connection.
CHttpFile* OpenRequest(
LPCTSTR pstrVerb,
LPCTSTR pstrObjectName,
LPCTSTR pstrReferer = NULL,
DWORD_PTR dwContext = 1,
LPCTSTR* ppstrAcceptTypes = NULL,
LPCTSTR pstrVersion = NULL,
DWORD dwFlags = INTERNET_FLAG_EXISTING_CONNECT);
CHttpFile* OpenRequest(
int nVerb,
LPCTSTR pstrObjectName,
LPCTSTR pstrReferer = NULL,
DWORD_PTR dwContext = 1,
LPCTSTR* ppstrAcceptTypes = NULL,
LPCTSTR pstrVersion = NULL,
DWORD dwFlags = INTERNET_FLAG_EXISTING_CONNECT);
Parameters
pstrVerb
A pointer to a string containing the verb to use in the request. If NULL, "GET" is used.
pstrObjectName
A pointer to a string containing the target object of the specified verb. This string is generally a filename, an executable module, or a search specifier.
pstrReferer
A pointer to a string that specifies the address (URL) of the document from which the URL in the request (pstrObjectName) was obtained. If NULL, no HTTP header is specified.
dwContext
The context identifier for the OpenRequest
operation. For more information about dwContext, see the Remarks section.
ppstrAcceptTypes
A pointer to a null-terminated array of LPCTSTR pointers to strings indicating content types accepted by the client. If ppstrAcceptTypes is NULL, the servers interpret that the client only accepts documents of type "text/*" (that is, only text documents and not pictures or other binary files). The content type is equivalent to the CGI variable CONTENT_TYPE, which identifies the type of data for queries that have attached information, such as HTTP POST and PUT.
pstrVersion
A pointer to a string defining the HTTP version. If NULL, "HTTP/1.0" is used.
dwFlags
Any combination of the INTERNET_ FLAG_* flags. See the Remarks section for a description of possible dwFlags values.
nVerb
A number associated with the HTTP request type. Can be one of the following:
HTTP request type | nVerb value |
---|---|
HTTP_VERB_POST | 0 |
HTTP_VERB_GET | 1 |
HTTP_VERB_HEAD | 2 |
HTTP_VERB_PUT | 3 |
HTTP_VERB_LINK | 4 |
HTTP_VERB_DELETE | 5 |
HTTP_VERB_UNLINK | 6 |
Return Value
A pointer to the CHttpFile object requested.
Remarks
dwFlags can be one of the following:
Internet flag | Description |
---|---|
INTERNET_FLAG_RELOAD | Forces a download of the requested file, object, or directory listing from the origin server, not from the cache. |
INTERNET_FLAG_DONT_CACHE | Doesn't add the returned entity to the cache. |
INTERNET_FLAG_MAKE_PERSISTENT | Adds the returned entity to the cache as a persistent entity. It means that standard cache cleanup, consistency checking, or garbage collection cannot remove this item from the cache. |
INTERNET_FLAG_SECURE | Uses secure transaction semantics. It translates to using SSL/PCT and is only meaningful in HTTP requests |
INTERNET_FLAG_NO_AUTO_REDIRECT | Used only with HTTP, specifies that redirections shouldn't be handled automatically in CHttpFile::SendRequest. |
Override the dwContext
default to set the context identifier to a value of your choosing. The context identifier is associated with this specific operation of the CHttpConnection
object created by its CInternetSession object. The value is returned to CInternetSession::OnStatusCallback to provide status on the operation with which it's identified. See the article Internet First Steps: WinInet for more information about the context identifier.
Exceptions may be thrown with this function.
See also
CInternetConnection Class
Hierarchy Chart
CInternetConnection Class
CHttpFile Class