Compartir a través de


Función WinHttpReadDataEx (winhttp.h)

Lee los datos de un identificador abierto por la función WinHttpOpenRequest .

Sintaxis

WINHTTPAPI DWORD WinHttpReadDataEx(
  HINTERNET hRequest,
  LPVOID    lpBuffer,
  DWORD     dwNumberOfBytesToRead,
  LPDWORD   lpdwNumberOfBytesRead,
  ULONGLONG ullFlags,
  DWORD     cbProperty,
  PVOID     pvProperty
);

Parámetros

hRequest

Tipo: IN HINTERNET

Un identificador HINTERNET devuelto de una llamada anterior a WinHttpOpenRequest.

Se debe haber llamado a WinHttpReceiveResponse o WinHttpQueryDataAvailable para este identificador y debe haberse completado antes de llamar a WinHttpReadDataEx. Aunque llamar a WinHttpReadDataEx inmediatamente después de la finalización de WinHttpReceiveResponse evita el gasto de una copia de búfer, esto requiere que la aplicación use un búfer de longitud fija para la lectura.

lpBuffer

Tipo: _Out_writes_bytes_to_(dwNumberOfBytesToRead, *lpdwNumberOfBytesRead) __out_data_source(NETWORK) LPVOID

Puntero a un búfer que recibe los datos leídos. Asegúrese de que este búfer sigue siendo válido hasta que WinHttpReadDataEx se haya completado.

dwNumberOfBytesToRead

Tipo: EN DWORD

Valor entero largo sin signo que contiene el número de bytes que se van a leer.

lpdwNumberOfBytesRead

Tipo: OUT LPDWORD

Puntero a una variable de entero largo sin signo que recibe el número de bytes leídos. WinHttpReadDataEx establece este valor en cero antes de realizar cualquier comprobación de errores o trabajo. Cuando se usa WinHTTP de forma asincrónica, establezca siempre este parámetro en NULL y recupere la información de la función de devolución de llamada; no hacerlo puede provocar un error de memoria.

ullFlags

Tipo: IN ULONGLONG

Si pasa WINHTTP_READ_DATA_EX_FLAG_FILL_BUFFER, WinHttp no completará la llamada a WinHttpReadDataEx hasta que se haya rellenado el búfer de datos proporcionado o se complete la respuesta. Pasar esta marca hace que el comportamiento de esta API sea equivalente al de WinHttpReadData.

cbProperty

Tipo: EN DWORD

Reservado. Pase 0.

pvProperty

Tipo: _In_reads_bytes_opt_(cbProperty) PVOID

Reservado. Pase NULL.

Valor devuelto

Código de estado que indica el resultado de la operación. Entre los códigos de error devueltos se incluyen los siguientes.

Código de error Descripción
ERROR_WINHTTP_CONNECTION_ERROR
Se ha restablecido o finalizado la conexión con el servidor, o se encontró un protocolo SSL incompatible. Por ejemplo, WinHTTP 5.1 no admite SSL2 a menos que el cliente lo habilite específicamente.
ERROR_WINHTTP_INCORRECT_HANDLE_STATE
No se puede llevar a cabo la operación solicitada porque el identificador proporcionado no está en el estado correcto.
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE
El tipo de identificador proporcionado es incorrecto para esta operación.
ERROR_WINHTTP_INTERNAL_ERROR
Se ha producido un error interno.
ERROR_WINHTTP_OPERATION_CANCELLED
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.
ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW
Se devuelve cuando una respuesta entrante supera un límite interno de tamaño winHTTP.
ERROR_WINHTTP_TIMEOUT
La solicitud ha agotado el tiempo de espera.
ERROR_NOT_ENOUGH_MEMORY
No había suficiente memoria disponible para completar la operación solicitada. (Código de error de Windows)

Comentarios

De forma predeterminada, WinHttpReadDataEx devuelve después de que se haya escrito cualquier cantidad de datos en el búfer que proporcione (la función no siempre rellenará completamente el búfer que proporcione).

Requisitos

   
Cliente mínimo compatible Compilación 20348 de Windows 10
Servidor mínimo compatible Compilación 20348 de Windows 10
Plataforma de destino Windows
Encabezado winhttp.h
Library Winhttp.lib
Archivo DLL Winhttp.dll

Consulte también