Compartir por


CHttpConnection (clase)

Administra la conexión a un servidor HTTP.

Sintaxis

class CHttpConnection : public CInternetConnection

Miembros

Constructores públicos

Nombre Descripción
CHttpConnection::CHttpConnection Crea un objeto CHttpConnection.

Métodos públicos

Nombre Descripción
CHttpConnection::OpenRequest Abre una solicitud HTTP.

Comentarios

HTTP es uno de los tres protocolos de servidor de Internet implementados por las clases WinInet de MFC.

La clase CHttpConnection contiene un constructor y una función miembro, OpenRequest, que administra las conexiones a un servidor con un protocolo HTTP.

Para comunicarse con un servidor HTTP, primero debe crear una instancia de CInternetSession y luego un objeto CHttpConnection. Un objeto CHttpConnection nunca se crea directamente, sino que se llama a CInternetSession::GetHttpConnection, que crea el objeto CHttpConnection y devuelve un puntero a él.

Para obtener más información sobre cómo funciona CHttpConnection con las otras clases de Internet de MFC, vea el artículo Programación de Internet con WinInet. Para obtener más información sobre cómo conectarse a servidores mediante los otros dos protocolos de Internet compatibles, gopher y FTP, vea las clases CGopherConnection y CFtpConnection.

Jerarquía de herencia

CObject

CInternetConnection

CHttpConnection

Requisitos

Encabezado: afxinet.h

CHttpConnection::CHttpConnection

Se llama a esta función miembro para construir un objeto CHttpConnection.

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);

Parámetros

pSession
Un puntero a un objeto CInternetSession.

hConnected
Identificador de una conexión de Internet.

pstrServer
Un puntero a una cadena que contiene el nombre del servidor FTP.

dwContext
Identificador de contexto del objeto CInternetConnection. Para obtener más información sobre dwContext, vea la sección Comentarios.

nPort
El número que identifica el puerto de Internet para esta conexión.

pstrUserName
Puntero a una cadena terminada en null que especifica el nombre del usuario que va a iniciar sesión. Si es NULL, el valor predeterminado es anónimo.

pstrPassword
Puntero a una cadena terminada en null que especifica la contraseña que se va a usar para iniciar sesión. Si tanto pstrPassword como pstrUserName son NULL, la contraseña anónima predeterminada es el nombre de correo electrónico del usuario. Si pstrPassword es NULL o una cadena vacía pero pstrUserName no es NULL, se usa una contraseña en blanco. En la tabla siguiente se describe el comportamiento de las cuatro configuraciones posibles de pstrUserName y pstrPassword:

pstrUserName pstrPassword Nombre de usuario enviado al servidor FTP Contraseña enviada al servidor FTP
NULL o " " NULL o " " "anónimo" Nombre de correo electrónico del usuario
Cadena que no es NULL NULL o " " pstrUserName " "
NULL Cadena que no es NULL ERROR ERROR
Cadena que no es NULL Cadena que no es NULL pstrUserName pstrPassword

dwFlags
Cualquier combinación de las marcas INTERNET_FLAG_*. Vea la tabla de la sección Comentarios de CHttpConnection::OpenRequest para obtener una descripción de los valores dwFlags.

Comentarios

CHttpConnection nunca se crea directamente. En su lugar, se crea un objeto mediante una llamada a CInternetSession::GetHttpConnection.

CHttpConnection::OpenRequest

Llame a esta función miembro para abrir una conexión HTTP.

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);

Parámetros

pstrVerb
Puntero a una cadena que contiene el verbo que se va a utilizar en la solicitud. Si es NULL, se usa "GET".

pstrObjectName
Puntero a una cadena que contiene el objeto de destino del verbo especificado. Esta cadena suele ser un nombre de archivo, un módulo ejecutable o un especificador de búsqueda.

pstrReferer
Puntero a una cadena que especifica la dirección (URL) del documento del que se ha obtenido la dirección URL de la solicitud (pstrObjectName). Si es NULL, no se especifica ningún encabezado HTTP.

dwContext
Identificador de contexto para la operación OpenRequest. Para obtener más información sobre dwContext, vea la sección Comentarios.

ppstrAcceptTypes
Puntero a una matriz terminada en null de punteros LPCTSTR a cadenas que indican los tipos de contenido que acepta el cliente. Si ppstrAcceptTypes es NULL, los servidores interpretan que el cliente solo acepta documentos de tipo “text/*” (es decir, solo documentos de texto y no imágenes ni otros archivos binarios). El tipo de contenido es equivalente a la variable CONTENT_TYPE de CGI, que identifica el tipo de datos para las consultas que tienen información adjunta, como HTTP POST y PUT.

pstrVersion
Puntero a una cadena que define la versión de HTTP. Si es NULL, se usa "HTTP/1.0".

dwFlags
Cualquier combinación de las marcas INTERNET_ FLAG_*. Vea la sección Comentarios para obtener una descripción de los posibles valores dwFlags.

nVerb
Número asociado al tipo de solicitud HTTP. Puede ser uno de los siguientes:

Tipo de solicitud HTTP 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

Valor devuelto

Puntero al objeto CHttpFile solicitado.

Comentarios

dwFlags puede ser uno de los siguientes:

Marca de Internet Descripción
INTERNET_FLAG_RELOAD Fuerza una descarga del archivo, el objeto o el listado de directorio solicitado del servidor de origen, no de la memoria caché.
INTERNET_FLAG_DONT_CACHE No agrega la entidad devuelta a la caché.
INTERNET_FLAG_MAKE_PERSISTENT Agrega la entidad devuelta a la memoria caché como una entidad persistente. Significa que las operaciones estándar de limpieza de caché, comprobación de coherencia o recolección de elementos no utilizados no pueden quitar este elemento de la caché.
INTERNET_FLAG_SECURE Usa semántica de transacción segura. Esto da lugar al uso de SSL/PCT y solo es significativo en solicitudes HTTP
INTERNET_FLAG_NO_AUTO_REDIRECT Solo se usa con HTTP; especifica que las redirecciones no se deben controlar automáticamente en CHttpFile::SendRequest.

Reemplace el valor predeterminado de dwContext para establecer el identificador de contexto en un valor que desee. El identificador de contexto está asociado a esta operación específica del objeto CHttpConnection creado por su objeto CInternetSession. El valor se devuelve a CInternetSession::OnStatusCallback para proporcionar el estado de la operación con la que se identifica. Vea el artículo Internet First Steps: WinInet para obtener más información sobre el identificador de contexto.

Se pueden producir excepciones con esta función.

Consulte también

CInternetConnection (clase)
Gráfico de jerarquías
CInternetConnection (clase)
CHttpFile (clase)