Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La función WinHttpOpenRequest crea un identificador de solicitud HTTP.
Syntax
WINHTTPAPI HINTERNET WinHttpOpenRequest(
[in] HINTERNET hConnect,
[in] LPCWSTR pwszVerb,
[in] LPCWSTR pwszObjectName,
[in] LPCWSTR pwszVersion,
[in] LPCWSTR pwszReferrer,
[in] LPCWSTR *ppwszAcceptTypes,
[in] DWORD dwFlags
);
Parámetros
[in] hConnect
Identificador de conexión HINTERNET a una sesión HTTP devuelta por WinHttpConnect.
[in] pwszVerb
Puntero a una cadena que contiene el verbo HTTP que se va a usar en la solicitud. Si este parámetro es NULL, la función usa GET como verbo HTTP. Nota Esta cadena debe estar en mayúsculas. Muchos servidores tratan los verbos HTTP como mayúsculas de minúsculas y las solicitudes del Grupo de tareas de ingeniería de Internet (IETF) escriben estos verbos solo con caracteres en mayúsculas.
[in] pwszObjectName
Puntero a una cadena terminada en null que contiene el nombre del recurso de destino del verbo HTTP especificado. Por lo general, se trata de un nombre de archivo, un módulo ejecutable o un especificador de búsqueda.
[in] pwszVersion
Puntero a una cadena que contiene la versión HTTP. Si este parámetro es NULL, la función usa HTTP/1.1.
[in] pwszReferrer
Puntero a una cadena que especifica la dirección URL del documento desde la que se obtuvo la dirección URL de la solicitud pwszObjectName . Si este parámetro se establece en WINHTTP_NO_REFERER, no se especifica ningún documento de referencia.
[in] ppwszAcceptTypes
Puntero a una matriz terminada en null de punteros de cadena que especifica los tipos de medios aceptados por el cliente. Si este parámetro se establece en WINHTTP_DEFAULT_ACCEPT_TYPES, el cliente no acepta ningún tipo. Normalmente, los servidores controlan la falta de tipos aceptados como indicación de que el cliente acepta solo documentos de tipo "text/*"; es decir, solo documentos de texto: no hay imágenes ni otros archivos binarios. Para obtener una lista de tipos de medios válidos, vea Tipos de medios definidos por IANA en http://www.iana.org/assignments/media-types/.
[in] dwFlags
Valor entero largo sin signo que contiene los valores de marca de Internet. Puede ser uno o varios de los siguientes valores:
Valor devuelto
Devuelve un identificador de solicitud HTTP válido si se ejecuta correctamente o NULL si no es así . Para obtener información de error extendida, llame a GetLastError. Entre los códigos de error devueltos se muestran los siguientes.
| Código de error | Description |
|---|---|
|
El tipo de identificador proporcionado es incorrecto para esta operación. |
|
Se ha producido un error interno. |
|
La dirección URL no es válida. |
|
La operación se canceló, normalmente porque el identificador en el que estaba funcionando la solicitud se cerró antes de que se completara la operación. |
|
La dirección URL especificó un esquema distinto de "http:" o "https:". |
|
No había suficiente memoria disponible para completar la operación solicitada. (Código de error de Windows) |
Observaciones
El valor devuelto indica éxito o error. Para obtener información de error extendida, llame a GetLastError.
La función WinHttpOpenRequest crea un nuevo identificador de solicitud HTTP y almacena los parámetros especificados en ese identificador. Un identificador de solicitud HTTP contiene una solicitud para enviar a un servidor HTTP y contiene todos los encabezados RFC822/MIME/HTTP que se enviarán como parte de la solicitud.
Si pwszVerb se establece en "HEAD", se omite el encabezado Content-Length.
Si se ha instalado una función de devolución de llamada de estado con WinHttpSetStatusCallback, una notificación de WINHTTP_CALLBACK_STATUS_HANDLE_CREATED indica que WinHttpOpenRequest ha creado un identificador de solicitud.
Una vez finalizada la aplicación que realiza la llamada con el identificador HINTERNET devuelto por WinHttpOpenRequest, debe cerrarse mediante la función WinHttpCloseHandle .
Examples
En este ejemplo se muestra cómo obtener un identificador HINTERNET , abrir una sesión HTTP, crear un encabezado de solicitud y enviar ese encabezado al servidor.
BOOL bResults = FALSE;
HINTERNET hSession = NULL,
hConnect = NULL,
hRequest = NULL;
// Use WinHttpOpen to obtain a session handle.
hSession = WinHttpOpen( L"A WinHTTP Example Program/1.0",
WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
WINHTTP_NO_PROXY_NAME,
WINHTTP_NO_PROXY_BYPASS, 0);
// Specify an HTTP server.
if (hSession)
hConnect = WinHttpConnect( hSession, L"www.wingtiptoys.com",
INTERNET_DEFAULT_HTTP_PORT, 0);
// Create an HTTP Request handle.
if (hConnect)
hRequest = WinHttpOpenRequest( hConnect, L"PUT",
L"/writetst.txt",
NULL, WINHTTP_NO_REFERER,
WINHTTP_DEFAULT_ACCEPT_TYPES,
0);
// Send a Request.
if (hRequest)
bResults = WinHttpSendRequest( hRequest,
WINHTTP_NO_ADDITIONAL_HEADERS,
0, WINHTTP_NO_REQUEST_DATA, 0,
0, 0);
// PLACE ADDITIONAL CODE HERE.
// Report any errors.
if (!bResults)
printf( "Error %d has occurred.\n", GetLastError());
// Close any open handles.
if (hRequest) WinHttpCloseHandle(hRequest);
if (hConnect) WinHttpCloseHandle(hConnect);
if (hSession) WinHttpCloseHandle(hSession);
Requisitos
| Requirement | Importancia |
|---|---|
| Cliente mínimo compatible | Windows XP, Windows 2000 Professional con SP3 [solo aplicaciones de escritorio] |
| servidor mínimo admitido | Windows Server 2003, Windows 2000 Server con SP3 [solo aplicaciones de escritorio] |
| de la plataforma de destino de | Windows |
| Header | winhttp.h |
| Library | Winhttp.lib |
| DLL | Winhttp.dll |
| Redistribuible | WinHTTP 5.0 e Internet Explorer 5.01 o posterior en Windows XP y Windows 2000. |