Documentación de Steamworks
Interfaz ISteamHTTP
Un cliente HTTP pequeño y fácil de usar para enviar y recibir datos desde la web.

Funciones miembro

Las funciones miembro para ISteamHTTP se llaman a través de la función de acceso global SteamHTTP().

CreateCookieContainer

HTTPCookieContainerHandle CreateCookieContainer( bool bAllowResponsesToModify );
NombreTipoDescripción
bAllowResponsesToModifyboolIndica si el servidor puede establecer cookies en este contenedor.

Crea un contenedor para almacenar cookies mientras dure el proceso.

Esta API solo es para la duración del proceso. Una vez que se reinicia Steam, no persiste ninguna cookie y no hay forma de acceder al contenedor de cookies entre ejecuciones repetidas del proceso.

Si bAllowResponsesToModify es true, cualquier respuesta a tus solicitudes utilizando este contenedor de cookies puede agregar nuevas cookies al contenedor que pueden transmitirse con futuras solicitudes. De lo contrario, si es false, solo se enviarán las cookies que configuraste explícitamente.

Puedes asociar el contenedor de cookies con una solicitud http utilizando SetHTTPRequestCookieContainer y puedes configurar una cookie utilizando SetCookie.

¡No olvides liberar el contenedor cuando hayas terminado con él para evitar pérdidas de memoria llamando a ReleaseCookieContainer!

Devuelve: HTTPCookieContainerHandle
Devuelve un nuevo handle de contenedor de cookies para usar con futuras llamadas a funciones SteamHTTP.

CreateHTTPRequest

HTTPRequestHandle CreateHTTPRequest( EHTTPMethod eHTTPRequestMethod, const char *pchAbsoluteURL );
NombreTipoDescripción
eHTTPRequestMethodEHTTPMethodEl tipo de solicitud para realizar con esta solicitud.
pchAbsoluteURLconst char *El url a solicitar. Debe comenzar con "http://" o "https://".

Inicializa una nueva solicitud HTTP.

Requiere métodos como GET o POST, además de la dirección URL absoluta para la solicitud. Tanto HTTP como HTTPS son compatibles, de modo que esta cadena debe empezar con "http://" o "https://" y debe ser algo así: "http://store.steampowered.com/app/10/". Esta llamada devuelve un handle que puedes usar en llamadas posteriores para configurar y luego enviar la solicitud HTTP con SendHTTPRequest o SendHTTPRequestAndStreamResponse.

¡No olvides liberar la solicitud HTTP cuando hayas terminado con ella para evitar pérdidas de memoria llamando a ReleaseHTTPRequest!

Devuelve: HTTPRequestHandle
Devuelve un nuevo handle de solicitud para usar con futuras llamadas a funciones SteamHTTP. Devuelve INVALID_HTTPREQUEST_HANDLE si pchAbsoluteURL es NULL o vacío ("").

DeferHTTPRequest

bool DeferHTTPRequest( HTTPRequestHandle hRequest );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud que hay que aplazar.

Aplaza una solicitud que ya ha sido enviada trasladándola al final de la cola.

Devuelve: bool.
Devuelve true si la solicitud se ha diferido correctamente. De lo contrario, false si hRequest no es un handle válido o si la solicitud aún no se ha enviado.

Véase también: SendHTTPRequest, SendHTTPRequestAndStreamResponse

GetHTTPDownloadProgressPct

bool GetHTTPDownloadProgressPct( HTTPRequestHandle hRequest, float *pflPercentOut );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud para la que se obtiene el porcentaje de descarga.
pflPercentOutfloat *Devuelve el porcentaje de descarga si la llamada se ha llevado a cabo correctamente.

Obtiene el progreso en la descarga del cuerpo para la solicitud.

Será cero, a menos que se haya recibido ya una cabecera de respuesta que incluya un campo "Content-Length". Para respuestas que no contengan un campo para la longitud del contenido, devolverá cero mientras dure la solicitud, ya que el tamaño es desconocido hasta que se cierra la conexión.

Devuelve: bool.
Devuelve true en caso de éxito si el porcentaje de descarga se devolvió correctamente. De lo contrario, false si el handle no es válido o pflPercentOut es NULL.

GetHTTPRequestWasTimedOut

bool GetHTTPRequestWasTimedOut( HTTPRequestHandle hRequest, bool *pbWasTimedOut );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud para la que hay que comprobar la razón del error.
pbWasTimedOutbool *Devuelve si se agotó el tiempo de espera para la solicitud o no.

Comprueba si el motivo del fallo de la solicitud fue porque agotamos el tiempo de espera (en lugar de un fallo más grave).

Se recomienda llamar a esta función dentro del contexto de HTTPRequestCompleted_t si m_bRequestSuccessful es false.

Devuelve: bool.
Devuelve true si la solicitud se completa con éxito y el tiempo de espera se ha agotado.
Devuelve false en los casos siguientes:
  • hRequest fue no válido.
  • La solicitud no se ha enviado o no se ha completado.

GetHTTPResponseBodyData

bool GetHTTPResponseBodyData( HTTPRequestHandle hRequest, uint8 *pBodyDataBuffer, uint32 unBufferSize );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud para la que se obtienen los datos del cuerpo de la respuesta.
pBodyDataBufferuint8 *El búfer donde se copiarán los datos.
unBufferSizeuint32Este debe ser el tamaño de pBodyDataBuffer en bytes.

Obtiene los datos del cuerpo de una respuesta HTTP.

Debe llamarse después de que la solicitud HTTP haya finalizado y devuelto la respuesta HTTP a través de la llamada a HTTPRequestCompleted_t
asociada con este handle de solicitud. Primero debes llamar a GetHTTPResponseBodySize o usar la variable m_unBodySize proporcionada en el resultado de la llamada, luego puedes asignar un búfer con ese tamaño para pasárselo a esta función.

Esto es solo para solicitudes HTTP que se enviaron con SendHTTPRequest. Usa GetHTTPStreamingResponseBodyData si estás usando solicitudes de retransmisión HTTP a través de SendHTTPRequestAndStreamResponse.

Devuelve: bool.
Devuelve true después de tener éxito, lo que indica que pBodyDataBuffer se ha llenado con los datos del cuerpo.
De lo contrario, devuelve false en los casos siguientes:
  • hRequest fue no válido.
  • La solicitud no se ha enviado o no se ha completado.
  • La solicitud es una solicitud de retransmisión.
  • pBodyDataBuffer es NULL.
  • unBufferSize no es del mismo tamaño que el proporcionado por GetHTTPResponseBodySize.

GetHTTPResponseBodySize

bool GetHTTPResponseBodySize( HTTPRequestHandle hRequest, uint32 *unBodySize );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud para la que se obtienen el tamaño del cuerpo de respuesta.
unBodySizeuint32 *Devuelve el tamaño del cuerpo de la respuesta.

Obtiene el tamaño de los datos del cuerpo de una respuesta HTTP.

Debe llamarse después de que se haya completado la solicitud HTTP y devuelto la respuesta HTTP a través de la llamada, asociada con este handle de solicitud a HTTPRequestCompleted_t o HTTPRequestDataReceived_t. Si esto se realiza con éxito, entonces puedes asignar un búfer con el tamaño proporcionado para que se llene con los datos obtenidos de GetHTTPResponseBodyData o GetHTTPStreamingResponseBodyData.

Devuelve: bool.
Devuelve true después de tener éxito, lo que indica que unBodySize ha almacenado el tamaño.
De lo contrario, devuelve false en los casos siguientes:
  • hRequest fue no válido.
  • La solicitud no se ha enviado o no se ha completado.
  • unBodySize es NULL.

GetHTTPResponseHeaderSize

bool GetHTTPResponseHeaderSize( HTTPRequestHandle hRequest, const char *pchHeaderName, uint32 *unResponseHeaderSize );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud para comprobar el nombre de la cabecera de respuesta.
pchHeaderNameconst char *El nombre de la cabecera que se va a comprobar.
unResponseHeaderSizeuint32 *Devuelve el tamaño de la cabecera de respuesta si está presente en la respuesta.

Comprueba si una cabecera está presente en una respuesta HTTP y si devuelve su tamaño.

Debe llamarse después de que la solicitud HTTP se haya completado y devuelto la respuesta HTTP a través de la llamada a HTTPRequestCompleted_t
asociada con este handle de solicitud. Si la cabecera de respuesta existe en la respuesta, puedes asignar un búfer de tamaño adecuado para obtener el valor asociado con GetHTTPResponseHeaderValue.

Aquí hay una lista de nombres de cabeceras de respuestas estándar en wikipedia.

Devuelve: bool.
Devuelve true si el nombre de la cabecera está en la respuesta y unResponseHeaderSize contiene el tamaño de la cabecera.
De lo contrario, devuelve false y establece unResponseHeaderSize a 0 en los casos siguientes:
  • hRequest fue no válido.
  • La solicitud no se ha enviado o no se ha completado.
  • pchHeaderName es NULL.
  • unResponseHeaderSize es NULL.
  • El nombre de la cabecera no está presente en la respuesta.

GetHTTPResponseHeaderValue

bool GetHTTPResponseHeaderValue( HTTPRequestHandle hRequest, const char *pchHeaderName, uint8 *pHeaderValueBuffer, uint32 unBufferSize );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud para la que obtener el valor de la cabecera de respuesta.
pchHeaderNameconst char *El nombre de la cabecera para la que se quiere obtener el valor.
pHeaderValueBufferuint8 *El búfer donde se copiará el valor.
unBufferSizeuint32Este debe ser el tamaño de pHeaderValueBuffer en bytes.

Obtiene el valor de la cabecera a partir de una respuesta HTTP.

Debe llamarse después de que la solicitud HTTP se haya completado y devuelto la respuesta HTTP a través de la llamada a HTTPRequestCompleted_t
asociada con este handle de solicitud. Primero debes llamar a GetHTTPResponseHeaderSize para verificar la presencia de la cabecera y obtener el tamaño. Después, puedes asignar un búfer de ese mismo tamaño para pasarlo a esta función.

Puedes encontrar una lista de nombres de cabeceras de respuestas estándar en wikipedia.

Devuelve: bool.
Devuelve true en caso de éxito, lo que significa que pHeaderValueBuffer contiene el valor de la cabecera.
De lo contrario, devuelve false en los casos siguientes:
  • hRequest fue no válido.
  • La solicitud no se ha enviado o no se ha completado.
  • pchHeaderName es NULL.
  • pHeaderValueBuffer es NULL.
  • El nombre de la cabecera no está presente en la respuesta.
  • unBufferSize no es lo suficientemente grande para albergar el valor.

GetHTTPStreamingResponseBodyData

bool GetHTTPStreamingResponseBodyData( HTTPRequestHandle hRequest, uint32 cOffset, uint8 *pBodyDataBuffer, uint32 unBufferSize );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud para la que se obtienen los datos del cuerpo de la respuesta.
cOffsetuint32Este debe ser el desplazamiento proporcionado por HTTPRequestDataReceived_t.
pBodyDataBufferuint8 *Devuelve los datos al copiarlos en este búfer.
unBufferSizeuint32Este debe ser el tamaño proporcionado por HTTPRequestDataReceived_t.

Obtiene los datos del cuerpo de una respuesta de retransmisión HTTP.

Se debe llamar después de recibir los datos de la solicitud de retransmisión HTTP a través de la función callback HTTPRequestDataReceived_t asociada con este handle de solicitud. Por lo general, asignarás un búfer asociado con el handle de solicitud utilizando el campo Content-Length de la respuesta HTTP para recibir el tamaño total de los datos cuando recibas la cabecera a través de HTTPRequestHeadersReceived_t. Después podrás anexar datos a ese búfer a medida que se reciban.

Esto es solo para las solicitudes de retransmisión HTTP que se enviaron con SendHTTPRequestAndStreamResponse. Usa GetHTTPResponseBodyData si estás usando SendHTTPRequest.

Devuelve: bool.
Devuelve true en caso de éxito, lo que significa que pBodyDataBuffer contiene los datos del cuerpo.
De lo contrario, devuelve false en los casos siguientes:
  • hRequest fue no válido.
  • La solicitud no se ha enviado o no se ha completado.
  • La solicitud no es una solicitud de retransmisión.
  • cOffset no es el mismo desplazamiento que fue proporcionado por la función callback HTTPRequestDataReceived_t.
  • unBufferSize no es del mismo tamaño que proporcionó HTTPRequestDataReceived_t.

PrioritizeHTTPRequest

bool PrioritizeHTTPRequest( HTTPRequestHandle hRequest );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud para priorizar.

Prioriza una solicitud que ya ha sido enviada trasladándola al inicio de la cola.

Devuelve: bool.
Devuelve true si la solicitud se ha priorizado correctamente. De lo contrario, false si hRequest no es un handle válido o si la solicitud aún no se ha enviado.

Véase también: SendHTTPRequest, SendHTTPRequestAndStreamResponse

ReleaseCookieContainer

bool ReleaseCookieContainer( HTTPCookieContainerHandle hCookieContainer );
NombreTipoDescripción
hCookieContainerHTTPCookieContainerHandleHandle del contenedor de cookies que se va a liberar.

Libera un contenedor de cookies junto con la memoria que tenía asignada en Steam.

¡DEBES llamar a esto cuando hayas terminado de usar cada HTTPCookieContainerHandle que obtuviste a través de CreateCookieContainer!

Devuelve: bool.
Devuelve true si el handle se ha liberado; de lo contrario, false si el handle no es válido.

ReleaseHTTPRequest

bool ReleaseHTTPRequest( HTTPRequestHandle hRequest );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud que hay que liberar.

Libera el handle de solicitud HTTP, junto con la memoria que tenía asignada en Steam.

DEBES llamar a esto cuando hayas terminado de usar cada HTTPRequestHandle que obtuviste a través de CreateHTTPRequest!

Devuelve: bool.
Devuelve true si el handle se liberó con éxito o false si el handle no es válido.

SendHTTPRequest

bool SendHTTPRequest( HTTPRequestHandle hRequest, SteamAPICall_t *pCallHandle );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud que se va a enviar.
pCallHandleSteamAPICall_t *Devuelve el handle resultante de la llamada para recibir la respuesta.

Envía una solicitud HTTP.

Esta llamada es asíncrona y proporciona el handle resultante de la llamada que se debe utilizar para hacer un seguimiento de la llamada hasta su finalización. Si tienes varias solicitudes enviadas al mismo tiempo, puedes usar PrioritizeHTTPRequest o DeferHTTPRequest para establecer la prioridad de la solicitud.

Si el usuario está en modo desconectado en Steam, esta llamada agregará una cabecera de control de caché de tipo "solo si está en caché" y buscará únicamente en la caché local en vez de enviar solicitudes remotas.

Si estás esperando gran cantidad de datos, puedes usar SendHTTPRequestAndStreamResponse para transmitir los datos en fragmentos.

Devuelve: bool.
Activa la función callback HTTPRequestCompleted_t.
Devuelve true si el parámetro se ha establecido con éxito.
Devuelve false en los casos siguientes:
  • hRequest fue no válido.
  • Si la solicitud ya se ha enviado.
  • pCallHandle es NULL.

SendHTTPRequestAndStreamResponse

bool SendHTTPRequestAndStreamResponse( HTTPRequestHandle hRequest, SteamAPICall_t *pCallHandle );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud que hay que enviar.
pCallHandleSteamAPICall_t *Devuelve el handle resultante de la llamada para recibir la respuesta.

Envía una solicitud HTTP y transmite la respuesta en fragmentos.

Esta llamada es asíncrona y proporciona el handle resultante de la llamada que se debe utilizar para hacer un seguimiento de la llamada hasta su finalización. Por lo general, asignarás un búfer asociado con el handle de solicitud utilizando el campo Content-Length de la respuesta HTTP para recibir el tamaño total de los datos cuando recibas la cabecera a través de HTTPRequestHeadersReceived_t. Después, podrán anexarse datos a ese búfer a medida que se reciban.

Si tienes varias solicitudes enviadas al mismo tiempo, puedes usar PrioritizeHTTPRequest o DeferHTTPRequest para establecer la prioridad de la solicitud.

Si el usuario está en modo desconectado en Steam, esta llamada agregará una cabecera de control de caché de tipo "solo si está en caché" y solo buscará en la caché local en vez de enviar solicitudes remotas.

Si el número de datos esperado es pequeño (unos pocos megabytes o menos), se recomienda usar SendHTTPRequest.

Devuelve: bool.
Activa la función callback HTTPRequestDataReceived_t.
Activa la función callback HTTPRequestHeadersReceived_t.
Activa la función callback HTTPRequestCompleted_t.
Devuelve true si el parámetro se ha establecido con éxito.
Devuelve false en los siguientes casos:
  • hRequest fue no válido.
  • Si la solicitud ya se ha enviado.
  • pCallHandle es NULL.

SetCookie

bool SetCookie( HTTPCookieContainerHandle hCookieContainer, const char *pchHost, const char *pchUrl, const char *pchCookie );
NombreTipoDescripción
hCookieContainerHTTPCookieContainerHandleContenedor de cookies donde poner la cookie.
pchHostconst char *El host para el que se establece esta cookie.
pchUrlconst char *El URL para el que se establece esta cookie.
pchCookieconst char *La cookie a establecer.

Agrega al contenedor de cookies especificado una cookie que se utilizará en futuras solicitudes.

Devuelve: bool.
Devuelve true si la cookie se estableció con éxito. En caso contrario, false si el handle de la solicitud no era válido o si hubo un problema de seguridad al analizar la cookie.

SetHTTPRequestAbsoluteTimeoutMS

bool SetHTTPRequestAbsoluteTimeoutMS( HTTPRequestHandle hRequest, uint32 unMilliseconds );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud en la cual establecer el tiempo de espera.
unMillisecondsuint32Duración del tiempo de espera en milisegundos.

Establece un tiempo de espera absoluto en milisegundos para la solicitud HTTP.

Este es el tiempo de espera total, que es distinto del tiempo de espera de actividad de red, que se establece con SetHTTPRequestNetworkActivityTimeout y que puede modificarse cada vez que obtenemos más datos.

Devuelve: bool.
Devuelve true al configurar correctamente el tiempo de espera.
Devuelve false en los casos siguientes:
  • hRequest fue no válido.
  • Si la solicitud ya se ha enviado.

SetHTTPRequestContextValue

bool SetHTTPRequestContextValue( HTTPRequestHandle hRequest, uint64 ulContextValue );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud para establecer el valor de contexto.
ulContextValueuint64El valor de contexto para establecer.

Establece un valor de contexto para la solicitud, que se devolverá en la función callback HTTPRequestCompleted_t después de enviar la solicitud.

Esto permite a quien hace la llamada establecer un id. de contexto que permite atribuir una función callback en particular a una solicitud determinada.

Debe llamarse antes de enviar la solicitud.

Devuelve: bool.
Devuelve true al establecer con éxito el valor de contexto.
Devuelve false en los casos siguientes:
  • hRequest fue no válido.
  • Si la solicitud ya se ha enviado.

SetHTTPRequestCookieContainer

bool SetHTTPRequestCookieContainer( HTTPRequestHandle hRequest, HTTPCookieContainerHandle hCookieContainer );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud que se asociará con el contenedor de cookies.
hCookieContainerHTTPCookieContainerHandleHandle del contenedor de cookies que se asociará con el handle de la solicitud.

Asocia un contenedor de cookies a utilizar para una solicitud HTTP.

Devuelve: bool.
Devuelve true al configurar correctamente el contenedor de cookies.
Devuelve false en los casos siguientes:
  • hRequest fue no válido.
  • hCookieContainer fue no válido.

SetHTTPRequestGetOrPostParameter

bool SetHTTPRequestGetOrPostParameter( HTTPRequestHandle hRequest, const char *pchParamName, const char *pchParamValue );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud en la cual establecer el parámetro.
pchParamNameconst char *Campo de nombre de parámetro.
pchParamValueconst char *Valor para asociar con el campo de nombre.

Establece un valor de parámetro GET o POST en la solicitud HTTP.

Se debe llevar a cabo la llamada antes de enviar la solicitud.

Devuelve: bool.
Devuelve true luego de establecer con éxito el parámetro.
Devuelve false en los casos siguientes:

SetHTTPRequestHeaderValue

bool SetHTTPRequestHeaderValue( HTTPRequestHandle hRequest, const char *pchHeaderName, const char *pchHeaderValue );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud en la cual establecer el valor de la cabecera.
pchHeaderNameconst char *El campo del nombre de la cabecera.
pchHeaderValueconst char *Valor para asociar con el campo del nombre de la cabecera.

Establece el valor de cabecera para una solicitud HTTP.

Debe llamarse antes de enviar la solicitud.

Una lista completa de campos de solicitud estándar está disponible aquí en wikipedia. Se prohíbe explícitamente el uso del campo User-Agent, ya que se sobrescribe al enviarse la solicitud.

Devuelve: bool.
Devuelve true al establecer con éxito el valor de la cabecera.
Devuelve false en los casos siguientes:
  • hRequest fue no válido.
  • Si la solicitud ya se ha enviado.
  • pchHeaderName es "User-Agent".
  • pchHeaderName o pchHeaderValue son NULL.

SetHTTPRequestNetworkActivityTimeout

bool SetHTTPRequestNetworkActivityTimeout( HTTPRequestHandle hRequest, uint32 unTimeoutSeconds );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud en la cual establecer el tiempo de espera.
unTimeoutSecondsuint32Duración del tiempo de espera en segundos.

Establece un tiempo de espera en segundos para la solicitud HTTP.

Si no se lleva a cabo esta llamada, el tiempo de espera predeterminado es de 60 segundos. Este valor puede modificarse cada vez que obtenemos más datos. Usa SetHTTPRequestAbsoluteTimeoutMS si necesitas un tiempo de espera máximo estricto.

Devuelve: bool.
Devuelve true al configurar correctamente el tiempo de espera.
Devuelve false en los casos siguientes:
  • hRequest fue no válido.
  • Si la solicitud ya se ha enviado.

SetHTTPRequestRawPostBody

bool SetHTTPRequestRawPostBody( HTTPRequestHandle hRequest, const char *pchContentType, uint8 *pubBody, uint32 unBodyLen );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud en la cual establecer el cuerpo POST.
pchContentTypeconst char *Establece el valor de la cabecera http de las llamadas en "content-type".
pubBodyuint8 *Los datos del cuerpo POST sin procesar que se van a establecer.
unBodyLenuint32La longitud de los datos del cuerpo pasados a pubBody.

Establece el cuerpo para una solicitud HTTP enviada con el método POST.

Fallará y devolverá false si se hace una solicitud GET, y fallará si ya estaban establecidos los parámetros POST de la solicitud. La configuración de este cuerpo sin procesar lo convierte en el único contenido para POST, el parámetro pchContentType establecerá la cabecera de la solicitud como "content-type" para informar al servidor cómo interpretar el cuerpo.

Devuelve: bool.
Devuelve true cuando se realiza correctamente, lo que indica que el campo "content-type" y los datos del cuerpo se han establecido.
De lo contrario, devuelve false en los siguientes casos:

SetHTTPRequestRequiresVerifiedCertificate

bool SetHTTPRequestRequiresVerifiedCertificate( HTTPRequestHandle hRequest, bool bRequireVerifiedCertificate );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud para establecer si la solicitud requiere o no un certificado verificado.
bRequireVerifiedCertificatebool¿Activar certificado verificado?

Establece que la solicitud HTTPS debe exigir un certificado SSL verificado mediante la tienda de confianza de certificación de máquinas.

En este momento, solo funciona en Windows y macOS.

Devuelve: bool.
Devuelve true después del éxito. De lo contrario, false si el identificador de solicitud no es válido.

SetHTTPRequestUserAgentInfo

bool SetHTTPRequestUserAgentInfo( HTTPRequestHandle hRequest, const char *pchUserAgentInfo );
NombreTipoDescripción
hRequestHTTPRequestHandleHandle de la solicitud en la cual establecer la información del agente de usuario (user-agent).
pchUserAgentInfoconst char *La cadena para adjuntar al final del agente de usuario.

Establece información adicional del agente de usuario para una solicitud.

No borra el agente de usuario normal, sino que solo agrega la información adicional al final. El envío de NULL o una cadena vacía restablece la información del agente de usuario al valor predeterminado.

Devuelve: bool.
Devuelve true cuando se realiza correctamente, lo que indica que el agente de usuario se ha actualizado. De lo contrario, false si el identificador de la solicitud no es válido.

Devoluciones de llamada

Estas son funciones callback que se activan al llamar a SteamAPI_RunCallbacks. Muchas de estas se activarán directamente en respuesta a las funciones miembro de ISteamHTTP.

HTTPRequestCompleted_t

Ocurre cuando se completa una solicitud HTTP.
Si estás utilizando GetHTTPStreamingResponseBodyData entonces debes usar HTTPRequestHeadersReceived_t o HTTPRequestDataReceived_t.

NombreTipoDescripción
m_hRequestHTTPRequestHandleHandle para la solicitud que se ha completado. Se debería llamar a ReleaseHTTPRequest para este handle cuando hayas terminado de usarlo, con el fin de liberar recursos, y que normalmente está en esta función callback.
m_ulContextValueuint64Valor de contexto que el usuario definió en la solicitud con SetHTTPRequestContextValue y con el que está asociada esta función callback. 0 si
no se estableció ningún valor de contexto.
m_bRequestSuccessfulboolEsto será true si la solicitud realmente obtuvo algún tipo de respuesta del servidor (incluso un error).
De lo contrario, será false si la solicitud falla debido a un error interno o a un fallo de red en el lado del cliente.
m_eStatusCodeEHTTPStatusCodeSerá el valor del código de estado HTTP devuelto por el servidor.
k_EHTTPStatusCode200OK es la respuesta positiva normal, si obtienes otra cosa, probablemente debas tratarla como un fallo.
m_unBodySizeuint32Tamaño del cuerpo de la solicitud en bytes. Esto es lo mismo que GetHTTPResponseBodySize.

Funciones asociadas: SendHTTPRequest, SendHTTPRequestAndStreamResponse

HTTPRequestDataReceived_t

Se activa cuando se recibe un bloque de datos de una solicitud de retransmisión HTTP.

NombreTipoDescripción
m_hRequestHTTPRequestHandleValor del handle para la solicitud que ha recibido datos.
m_ulContextValueuint64Valor de contexto que el usuario definió en la solicitud con la que está asociada esta función callback, 0 si
no se estableció ningún valor de contexto.
m_cOffsetuint32Desplazamiento a proporcionar a GetHTTPStreamingResponseBodyData para obtener esta porción de datos.
m_cBytesReceiveduint32Tamaño en bytes a proporcionar a GetHTTPStreamingResponseBodyData para obtener esta porción de datos.

Funciones asociadas: SendHTTPRequestAndStreamResponse

HTTPRequestHeadersReceived_t

Se activa cuando se reciben cabeceras HTTP de una solicitud de retransmisión HTTP.

NombreTipoDescripción
m_hRequestHTTPRequestHandleValor del handle para la solicitud que ha recibido cabeceras.
m_ulContextValueuint64Valor de contexto que el usuario definió en la solicitud con la que está asociada esta función callback, 0 si
no se estableció ningún valor de contexto.

Funciones asociadas: SendHTTPRequestAndStreamResponse

Enums

Estas son enumeraciones definidas para usarse con ISteamHTTP.

EHTTPMethod

Se usa para configurar el método de solicitud HTTP en CreateHTTPRequest. Por lo general, solo se necesita GET o POST.

Puedes leer más sobre los métodos de solicitud HTTP en Mozilla Developer Network.

NombreValorDescripción
k_EHTTPMethodInvalid0No válido.
k_EHTTPMethodGET1Método HTTP: GET.
k_EHTTPMethodHEAD2Método HTTP: HEAD.
k_EHTTPMethodPOST3Método HTTP: POST.
k_EHTTPMethodPUT4Método HTTP: PUT.
k_EHTTPMethodDELETE5Método HTTP: DELETE.
k_EHTTPMethodOPTIONS6Método HTTP: OPTIONS.
k_EHTTPMethodPATCH7Método HTTP: PATCH.

EHTTPStatusCode

Códigos de estado de respuesta HTTP que el servidor puede enviar en respuesta a una solicitud.

Consulta la Mozilla Developer Network o RFC2616 sección 10.3 para obtener descripciones detalladas de cada uno de estos.

NombreValorDescripción
k_EHTTPStatusCodeInvalid0Código de estado no válido. No está definido en HTTP; se utiliza para indicar que no está establecido en nuestro código.
k_EHTTPStatusCode100Continue100
k_EHTTPStatusCode101SwitchingProtocols101
k_EHTTPStatusCode200OK200
k_EHTTPStatusCode201Created201
k_EHTTPStatusCode202Accepted202
k_EHTTPStatusCode203NonAuthoritative203
k_EHTTPStatusCode204NoContent204
k_EHTTPStatusCode205ResetContent205
k_EHTTPStatusCode206PartialContent206
k_EHTTPStatusCode300MultipleChoices300
k_EHTTPStatusCode301MovedPermanently301
k_EHTTPStatusCode302Found302
k_EHTTPStatusCode303SeeOther303
k_EHTTPStatusCode304NotModified304
k_EHTTPStatusCode305UseProxy305
k_EHTTPStatusCode307TemporaryRedirect307
k_EHTTPStatusCode400BadRequest400
k_EHTTPStatusCode401Unauthorized401Es posible que necesites un 403 u otro. 401 implica que está enviando una cabecera de autenticación WWW y que el cliente puede enviar como respuesta una cabecera de autorización.
k_EHTTPStatusCode402PaymentRequired402Esto está reservado para futuras especificaciones HTTP, no realmente soportadas por los clientes.
k_EHTTPStatusCode403Forbidden403
k_EHTTPStatusCode404NotFound404
k_EHTTPStatusCode405MethodNotAllowed405
k_EHTTPStatusCode406NotAcceptable406
k_EHTTPStatusCode407ProxyAuthRequired407
k_EHTTPStatusCode408RequestTimeout408
k_EHTTPStatusCode409Conflict409
k_EHTTPStatusCode410Gone410
k_EHTTPStatusCode411LengthRequired411
k_EHTTPStatusCode412PreconditionFailed412
k_EHTTPStatusCode413RequestEntityTooLarge413
k_EHTTPStatusCode414RequestURITooLong414
k_EHTTPStatusCode415UnsupportedMediaType415
k_EHTTPStatusCode416RequestedRangeNotSatisfiable416
k_EHTTPStatusCode417ExpectationFailed417
k_EHTTPStatusCode4xxUnknown418418 está reservado, por lo que lo utilizamos para indicar que es desconocido.
k_EHTTPStatusCode429TooManyRequests429
k_EHTTPStatusCode500InternalServerError500
k_EHTTPStatusCode501NotImplemented501
k_EHTTPStatusCode502BadGateway502
k_EHTTPStatusCode503ServiceUnavailable503
k_EHTTPStatusCode504GatewayTimeout504
k_EHTTPStatusCode505HTTPVersionNotSupported505
k_EHTTPStatusCode5xxUnknown599

Typedefs

Estas son las definiciones de tipo establecidas para usarse con ISteamHTTP.

NombreTipo de baseDescripción
HTTPCookieContainerHandleuint32
HTTPRequestHandleuint32Handle del handle de la solicitud HTTP.

Constantes

Estas son las constantes definidas para usarse con ISteamHTTP.

NombreTipoValorDescripción
INVALID_HTTPCOOKIE_HANDLEint0
INVALID_HTTPREQUEST_HANDLEint0
STEAMHTTP_INTERFACE_VERSIONconst char *"STEAMHTTP_INTERFACE_VERSION002"