Los rincones del API Win32: Más sobre WinInet y HTTP - Gestión de cabeceras adicionales
27 de Agosto de 2005
Programación estructurada
Algunos de los parámetros que pasamos mientras creamos la petición, se traducen en cabeceras del protocolo HTTP. Sin embargo, quizá en algún momento tengamos la necesidad de enviar o eliminar una cabecera. Un caso típico de esto suele ser el envío de formularios (con la instrucción POST) a través de Wininet, o bien la recuperación de una página si está modificada a partir de una fecha (con la cabecera HTTP "If-Modified-Since").
Para solucionar estas situaciones tenemos disponible la función HttpAddRequestHeaders, que precisamente se encarga de gestionar las cabeceras internas de la petición que acabamos de crear. La sintaxis es la siguiente:
BOOL HttpAddRequestHeaders( HINTERNET hPetición, LPCTSTR lpszCabeceras, DWORD dwLongitudCabeceras, DWORD dwOpciones );
Esta función retorna un valor booleano indicando su éxito o fracaso.
Para solucionar estas situaciones tenemos disponible la función HttpAddRequestHeaders, que precisamente se encarga de gestionar las cabeceras internas de la petición que acabamos de crear. La sintaxis es la siguiente:
BOOL HttpAddRequestHeaders( HINTERNET hPetición, LPCTSTR lpszCabeceras, DWORD dwLongitudCabeceras, DWORD dwOpciones );
- hPetición: un descriptor obtenido con una llamada previa a HttpOpenRequest. Las cabeceras se añadirán a la petición identificada por este descriptor.
- lpsCabeceras: Un puntero a un cadena que contiene el conjunto de cabeceras a añadir. Si pasamos más de una cabecera, debemos separar cada una de ellas a través de los caracteres retorno de carro (ASCII 10 y 13).
- dwLongitudCabeceras: indica la longitud de la cadena que hemos pasado en el parámetro lpszCabeceras. Si pasamos el valor -1 en este parámetro se calculará la longitud de la cadena buscando el carácter nulo final.
- dwOpciones: indica distintas opciones para añadir las cabeceras. Puedes ser cualquier combinación de los siguientes valores:
- HTTP_ADDREQ_FLAG_ADD: añade la cabecera si no existe
- HTTP_ADDREQ_FLAG_ADD_IF_NEW: añade la cabecera sólo si no existe, en caso contrario, retorna un error.
- HTTP_ADDREQ_FLAG_COALESCE: combina distintas cabeceras con el mismo nombre en una sola, siempre y cuando el tipo de cabecera que estemos combinando lo permita.
- HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA: Combina distintas cabeceras del mismo modo que el valor anterior, pero utilizando una "coma" como separador. Por ejemplo, Si existe la cabecera "Accept: text/*" y añadimos una nueva cabecera de tipo "Accept: image/*", el resultado combinado sería "Accept: text/*, image/*".
- HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON: Combina distintas cabeceras del mismo modo que el valor anterior, pero utilizando un "punto y coma" como separador.
- HTTP_ADDREQ_FLAG_REPLACE: Reemplaza o elimina una cabecera. Si el valor de la cabecera (dentro de lpszCabeceras) es nulo, entonces la cabecera se eliminará. Si el valor no es nulo, se reemplazará con el indicado en lpszCabeceras. En este caso sólo se puede pasar una cabecera dentro del parámetro lpszCabeceras.
Esta función retorna un valor booleano indicando su éxito o fracaso.
Valora este capítulo:
Autor y licencia de 'Los rincones del API Win32: Más sobre WinInet y HTTP - Gestión de cabeceras adicionales'
|
Opiniona sobre 'Los rincones del API Win32: Más sobre WinInet y HTTP - Gestión de cabeceras adicionales' (0)
Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.
Opina sobre este tutorial |
Wikis relacionados con 'Los rincones del API Win32: Más sobre WinInet y HTTP - Gestión de cabeceras adicionales'
Entramos en temas interesantes: el acceso a recursos remotos a través del protocolo de aplicación...
Más »
El protocolo FTP desde el API WinInet. Con este curso aprenderás a hacer un pequeño...
Más »
Comienzo con un nuevo tema dentro dentro de la serie Los rincones del API Win32....
Más »
Damos una visión detallada de una de las características más interesantes de esta tecnología de...
Más »
Estudio sobre la doctrina católica.


