ISteamHTTP

Note

This documentation is auto-generated. Methods marked with 🤖 are automatically generated bindings. Methods marked with ✍️ are manually implemented and methods marked with ✋ are currently not implemented.

Note

This interface can be accessed has multiple accessors (e.g. a GameServer variant), the documentation shows HTTP everywhere but it can also be accessed with GameServerHTTP.

List of Functions

List of Callbacks

Function Reference

HTTP.CreateCookieContainer(bAllowResponsesToModify)

🤖 Auto-generated binding

Parameters:

bAllowResponsesToModify (bool) –

Returns:

(int - HTTPCookieContainerHandle) Return value

SteamWorks:

CreateCookieContainer

HTTP.CreateHTTPRequest(eHTTPRequestMethod, pchAbsoluteURL)

🤖 Auto-generated binding

Parameters:
  • eHTTPRequestMethod (int - EHTTPMethod) –

  • pchAbsoluteURL (str?) –

Returns:

(int - HTTPRequestHandle) Return value

SteamWorks:

CreateHTTPRequest

Example:

local hReq = Steam.HTTP.CreateHTTPRequest('GET', 'https://api.example.com/leaderboard')
Steam.HTTP.SetHTTPRequestHeaderValue(hReq, 'Accept', 'application/json')
Steam.HTTP.SendHTTPRequest(hReq)
HTTP.DeferHTTPRequest(hRequest)

🤖 Auto-generated binding

Parameters:

hRequest (int - HTTPRequestHandle) –

Returns:

(bool) Return value

SteamWorks:

DeferHTTPRequest

HTTP.GetHTTPDownloadProgressPct(hRequest)

🤖 Auto-generated binding

Parameters:

hRequest (int - HTTPRequestHandle) –

Returns:

(bool) Return value

Returns:

(float) pflPercentOut

SteamWorks:

GetHTTPDownloadProgressPct

Signature differences from C++ API:

  • Parameter pflPercentOut is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value.

Example:

-- Poll progress for a large download
local pct = Steam.HTTP.GetHTTPDownloadProgressPct(hReq)
print(string.format('Download: %.1f%%', pct * 100))
HTTP.GetHTTPRequestWasTimedOut(hRequest)

🤖 Auto-generated binding

Parameters:

hRequest (int - HTTPRequestHandle) –

Returns:

(bool) Return value

Returns:

(bool) pbWasTimedOut

SteamWorks:

GetHTTPRequestWasTimedOut

Signature differences from C++ API:

  • Parameter pbWasTimedOut is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value.

HTTP.GetHTTPResponseBodyData(hRequest, unBufferSize)

🤖 Auto-generated binding

Parameters:
  • hRequest (int - HTTPRequestHandle) –

  • unBufferSize (int?) – size of the buffer to allocate for pBodyDataBuffer. If nil then the buffer will be NULL.

Returns:

(bool) Return value

Returns:

(str) pBodyDataBuffer

SteamWorks:

GetHTTPResponseBodyData

Signature differences from C++ API:

  • Parameter pBodyDataBuffer is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value.

Notes:

HTTP.GetHTTPResponseBodySize(hRequest)

🤖 Auto-generated binding

Parameters:

hRequest (int - HTTPRequestHandle) –

Returns:

(bool) Return value

Returns:

(int) unBodySize

SteamWorks:

GetHTTPResponseBodySize

Signature differences from C++ API:

  • Parameter unBodySize is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value.

Example:

function Steam.HTTP.OnHTTPRequestCompleted(data)
    if data.m_eStatusCode == 200 then
        local size = Steam.HTTP.GetHTTPResponseBodySize(data.m_hRequest)
        local ok, body = Steam.HTTP.GetHTTPResponseBodyData(data.m_hRequest, size)
        if ok then
            handleResponse(body)
        end
    end
    Steam.HTTP.ReleaseHTTPRequest(data.m_hRequest)
end
HTTP.GetHTTPResponseHeaderSize(hRequest, pchHeaderName)

🤖 Auto-generated binding

Parameters:
  • hRequest (int - HTTPRequestHandle) –

  • pchHeaderName (str?) –

Returns:

(bool) Return value

Returns:

(int) unResponseHeaderSize

SteamWorks:

GetHTTPResponseHeaderSize

Signature differences from C++ API:

  • Parameter unResponseHeaderSize is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value.

HTTP.GetHTTPResponseHeaderValue(hRequest, pchHeaderName, unBufferSize)

🤖 Auto-generated binding

Parameters:
  • hRequest (int - HTTPRequestHandle) –

  • pchHeaderName (str?) –

  • unBufferSize (int?) – size of the buffer to allocate for pHeaderValueBuffer. If nil then the buffer will be NULL.

Returns:

(bool) Return value

Returns:

(str) pHeaderValueBuffer

SteamWorks:

GetHTTPResponseHeaderValue

Signature differences from C++ API:

  • Parameter pHeaderValueBuffer is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value.

Example:

function Steam.HTTP.OnHTTPRequestCompleted(data)
    local size = Steam.HTTP.GetHTTPResponseHeaderSize(data.m_hRequest, 'Content-Type')
    if size > 0 then
        local ok, ct = Steam.HTTP.GetHTTPResponseHeaderValue(data.m_hRequest, 'Content-Type', size)
        if ok then
            print('Content-Type:', ct)
        end
    end
    Steam.HTTP.ReleaseHTTPRequest(data.m_hRequest)
end
HTTP.GetHTTPStreamingResponseBodyData(hRequest, cOffset, unBufferSize)

🤖 Auto-generated binding

Parameters:
  • hRequest (int - HTTPRequestHandle) –

  • cOffset (int) –

  • unBufferSize (int?) – size of the buffer to allocate for pBodyDataBuffer. If nil then the buffer will be NULL.

Returns:

(bool) Return value

Returns:

(str) pBodyDataBuffer

SteamWorks:

GetHTTPStreamingResponseBodyData

Signature differences from C++ API:

  • Parameter pBodyDataBuffer is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value.

HTTP.PrioritizeHTTPRequest(hRequest)

🤖 Auto-generated binding

Parameters:

hRequest (int - HTTPRequestHandle) –

Returns:

(bool) Return value

SteamWorks:

PrioritizeHTTPRequest

HTTP.ReleaseCookieContainer(hCookieContainer)

🤖 Auto-generated binding

Parameters:

hCookieContainer (int - HTTPCookieContainerHandle) –

Returns:

(bool) Return value

SteamWorks:

ReleaseCookieContainer

HTTP.ReleaseHTTPRequest(hRequest)

🤖 Auto-generated binding

Parameters:

hRequest (int - HTTPRequestHandle) –

Returns:

(bool) Return value

SteamWorks:

ReleaseHTTPRequest

Example:

-- Always release the request handle when done
Steam.HTTP.ReleaseHTTPRequest(hReq)
HTTP.SendHTTPRequest(hRequest)

🤖 Auto-generated binding

Parameters:

hRequest (int - HTTPRequestHandle) –

Returns:

(bool) Return value

Returns:

(uint64) pCallHandle

SteamWorks:

SendHTTPRequest

Signature differences from C++ API:

  • Parameter pCallHandle is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value.

Example:

local hReq = Steam.HTTP.CreateHTTPRequest('GET', 'https://example.com/data.json')
Steam.HTTP.SetHTTPRequestNetworkActivityTimeout(hReq, 10)
Steam.HTTP.SendHTTPRequest(hReq)
HTTP.SendHTTPRequestAndStreamResponse(hRequest)

🤖 Auto-generated binding

Parameters:

hRequest (int - HTTPRequestHandle) –

Returns:

(bool) Return value

Returns:

(uint64) pCallHandle

SteamWorks:

SendHTTPRequestAndStreamResponse

Signature differences from C++ API:

  • Parameter pCallHandle is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value.

HTTP.SetCookie(hCookieContainer, pchHost, pchUrl, pchCookie)

🤖 Auto-generated binding

Parameters:
  • hCookieContainer (int - HTTPCookieContainerHandle) –

  • pchHost (str?) –

  • pchUrl (str?) –

  • pchCookie (str?) –

Returns:

(bool) Return value

SteamWorks:

SetCookie

HTTP.SetHTTPRequestAbsoluteTimeoutMS(hRequest, unMilliseconds)

🤖 Auto-generated binding

Parameters:
  • hRequest (int - HTTPRequestHandle) –

  • unMilliseconds (int) –

Returns:

(bool) Return value

SteamWorks:

SetHTTPRequestAbsoluteTimeoutMS

HTTP.SetHTTPRequestContextValue(hRequest, ulContextValue)

🤖 Auto-generated binding

Parameters:
  • hRequest (int - HTTPRequestHandle) –

  • ulContextValue (uint64) –

Returns:

(bool) Return value

SteamWorks:

SetHTTPRequestContextValue

HTTP.SetHTTPRequestCookieContainer(hRequest, hCookieContainer)

🤖 Auto-generated binding

Parameters:
  • hRequest (int - HTTPRequestHandle) –

  • hCookieContainer (int - HTTPCookieContainerHandle) –

Returns:

(bool) Return value

SteamWorks:

SetHTTPRequestCookieContainer

HTTP.SetHTTPRequestGetOrPostParameter(hRequest, pchParamName, pchParamValue)

🤖 Auto-generated binding

Parameters:
  • hRequest (int - HTTPRequestHandle) –

  • pchParamName (str?) –

  • pchParamValue (str?) –

Returns:

(bool) Return value

SteamWorks:

SetHTTPRequestGetOrPostParameter

Example:

local hReq = Steam.HTTP.CreateHTTPRequest('POST', 'https://api.example.com/score')
Steam.HTTP.SetHTTPRequestGetOrPostParameter(hReq, 'score', tostring(playerScore))
Steam.HTTP.SetHTTPRequestGetOrPostParameter(hReq, 'player', playerName)
Steam.HTTP.SendHTTPRequest(hReq)
HTTP.SetHTTPRequestHeaderValue(hRequest, pchHeaderName, pchHeaderValue)

🤖 Auto-generated binding

Parameters:
  • hRequest (int - HTTPRequestHandle) –

  • pchHeaderName (str?) –

  • pchHeaderValue (str?) –

Returns:

(bool) Return value

SteamWorks:

SetHTTPRequestHeaderValue

Notes:

HTTP.SetHTTPRequestNetworkActivityTimeout(hRequest, unTimeoutSeconds)

🤖 Auto-generated binding

Parameters:
  • hRequest (int - HTTPRequestHandle) –

  • unTimeoutSeconds (int) –

Returns:

(bool) Return value

SteamWorks:

SetHTTPRequestNetworkActivityTimeout

Example:

local hReq = Steam.HTTP.CreateHTTPRequest('GET', 'https://example.com/ping')
Steam.HTTP.SetHTTPRequestNetworkActivityTimeout(hReq, 5)
Steam.HTTP.SendHTTPRequest(hReq)
HTTP.SetHTTPRequestRawPostBody(hRequest, pchContentType, pubBody, unBodyLen)

🤖 Auto-generated binding

Parameters:
  • hRequest (int - HTTPRequestHandle) –

  • pchContentType (str?) –

  • pubBody (str?) –

  • unBodyLen (int) – size of the input array pubBody

Returns:

(bool) Return value

SteamWorks:

SetHTTPRequestRawPostBody

Example:

local json = '{"action":"submit","data":"value"}'
local hReq = Steam.HTTP.CreateHTTPRequest('POST', 'https://api.example.com/action')
Steam.HTTP.SetHTTPRequestRawPostBody(hReq, 'application/json', json, #json)
Steam.HTTP.SendHTTPRequest(hReq)
HTTP.SetHTTPRequestRequiresVerifiedCertificate(hRequest, bRequireVerifiedCertificate)

🤖 Auto-generated binding

Parameters:
  • hRequest (int - HTTPRequestHandle) –

  • bRequireVerifiedCertificate (bool) –

Returns:

(bool) Return value

SteamWorks:

SetHTTPRequestRequiresVerifiedCertificate

HTTP.SetHTTPRequestUserAgentInfo(hRequest, pchUserAgentInfo)

🤖 Auto-generated binding

Parameters:
  • hRequest (int - HTTPRequestHandle) –

  • pchUserAgentInfo (str?) –

Returns:

(bool) Return value

SteamWorks:

SetHTTPRequestUserAgentInfo

Callbacks

HTTP.OnHTTPRequestCompleted()

Callback for HTTPRequestCompleted_t

callback(data) receives:

  • data.m_hRequest (int - HTTPRequestHandle)

  • data.m_ulContextValue (uint64)

  • data.m_bRequestSuccessful (bool)

  • data.m_eStatusCode (int - EHTTPStatusCode)

  • data.m_unBodySize (int)

HTTP.OnHTTPRequestHeadersReceived()

Callback for HTTPRequestHeadersReceived_t

callback(data) receives:

  • data.m_hRequest (int - HTTPRequestHandle)

  • data.m_ulContextValue (uint64)

HTTP.OnHTTPRequestDataReceived()

Callback for HTTPRequestDataReceived_t

callback(data) receives:

  • data.m_hRequest (int - HTTPRequestHandle)

  • data.m_ulContextValue (uint64)

  • data.m_cOffset (int)

  • data.m_cBytesReceived (int)