Inicio / Wikis / Tutoriales / Los rincones del API Win32: Más sobre WinInet y HTTP - Envío de la petición

Los rincones del API Win32: Más sobre WinInet y HTTP - Envío de la petición

Tutorial creado por Juan Manuel. Extraido de: http://www.lawebdejm.com
27 de Agosto de 2005
Programación estructurada

6 - Envío de la petición

Una vez que hemos creado una petición, y conocemos su descriptor, debemos enviarla por la red, para que llegue al servidor HTTP y este la procese.

Para ello contamos con la función HttpSendRequest, que dada una petición creada con HttpOpenRequest, la envía a través de la conexión activa y recibe la respuesta.

Esta petición puede ser tanto de recepción de datos (con la operación GET, HEAD, etc.) como de envío (con la operación POST o PUT).

Hay que avisar que este es el paso más lento del método detallado, ya que es donde se establece la conexión y envío físico a través de la red, y es en este momento cuando podemos caer en un timeout más o menos largo.

BOOL HttpSendRequest( HINTERNET hPetición, LPCTSTR lpszCabeceras, DWORD dwLongitudCabeceras, LPVOID lpOpcional, DWORD dwLongitudOpcional );

  • hPetición: un descriptor obtenido a través de una llamada a HttpOpenRequest.
  • lpszCabeceras: un puntero a cadena donde se almacenan las cabeceras adicionales a enviar en la petición. Lo más normal es que no sea necesario enviar cabeceras adicionales, así que pasaremos el valor NULL. Más abajo, hablaremos sobre cómo utilizar este parámetro para simular un envío de formulario a través de Wininet.
  • dwLongitudCabeceras: número de caracteres que hemos pasado en el parámetro lpszCabeceras. Si pasamos -1, y en lpszCabeceras hay un valor distintos de NULL, la función calculará la longitud buscando el carácter nulo final.
  • lpOpcional: es un puntero a un buffer que contiene información adicional. Esta información será enviada inmediatamente después de las cabeceras estándar, y normalmente se utiliza en peticiones de tipo POST o PUT. Para peticiones de tipo GET, o si no necesitamos enviar información adicional, pasaremos el valor NULL.
  • dwLongitudOpcional: la longitud, en bytes, del buffer pasado en lpOpcional, o 0 si se ha pasado el valor NULL.

La función retornará TRUE o FALSE dependiendo del éxito.

Para un mayor control sobre en envío de la petición, podemos hacer uso de la función extendida HttpSendRequestEx. La principal razón para utilizar esta otra función es el envío de peticiones de gran tamaño (como hacer un "upload" de un archivo a través de la operación POST), ya que con el uso de la función HttpSendRequest, se requiere que la petición se envíe en una sola intrucción. Usando la función extendida HttpSendRequestEx, podemos comenzar una petición, enviar la petición en distintas llamadas, y finalizar el envío de la petición una vez que todo está completado.

No voy a explicar con detalle el uso de esta función, aunque aquellos que queráis profundizar en su uso, podéis ver un programa de ejemplo en esta URL.




Con todos estos pasos ya hemos sabemos cómo utilizar el método detallado. Como habéis visto, se tiene un control mucho mayor sobre la petición HTTP que se envía al servidor.
Valora este capítulo:
Autor y licencia de 'Los rincones del API Win32: Más sobre WinInet y HTTP - Envío de la petición'
Juan Manuel Extraído de: http://www.lawebdejm.com

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Opiniona sobre 'Los rincones del API Win32: Más sobre WinInet y HTTP - Envío de la petición' (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



* Valoración:
* Nombre:
* Correo electrónico:
* Título:
* Comentario:

Wikis relacionados con 'Los rincones del API Win32: Más sobre WinInet y HTTP - Envío de la petición'

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.
¿Estás seguro de que deseas eliminar este capítulo?