mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2024-12-15 12:40:30 +00:00
cbbab26bf3
- Start making the summary lines for modules a little better. Just say what the module does, rather than "The X API does Y" or "Provides Y". There's still a lot of work to be done here. - Bundle prism.js on the page, so we can highlight non-Lua code. - Copy our local_ips wiki page to the main docs.
178 lines
7.0 KiB
Lua
178 lines
7.0 KiB
Lua
--- Make HTTP requests, sending and receiving data to a remote web server.
|
|
--
|
|
-- @module http
|
|
-- @since 1.1
|
|
-- @see local_ips To allow accessing servers running on your local network.
|
|
|
|
--- Asynchronously make a HTTP request to the given url.
|
|
--
|
|
-- This returns immediately, a @{http_success} or @{http_failure} will be queued
|
|
-- once the request has completed.
|
|
--
|
|
-- @tparam string url The url to request
|
|
-- @tparam[opt] string body An optional string containing the body of the
|
|
-- request. If specified, a `POST` request will be made instead.
|
|
-- @tparam[opt] { [string] = string } headers Additional headers to send as part
|
|
-- of this request.
|
|
-- @tparam[opt] boolean binary Whether to make a binary HTTP request. If true,
|
|
-- the body will not be UTF-8 encoded, and the received response will not be
|
|
-- decoded.
|
|
--
|
|
-- @tparam[2] {
|
|
-- url = string, body? = string, headers? = { [string] = string },
|
|
-- binary? = boolean, method? = string, redirect? = boolean,
|
|
-- } request Options for the request.
|
|
--
|
|
-- This table form is an expanded version of the previous syntax. All arguments
|
|
-- from above are passed in as fields instead (for instance,
|
|
-- `http.request("https://example.com")` becomes `http.request { url =
|
|
-- "https://example.com" }`).
|
|
--
|
|
-- This table also accepts several additional options:
|
|
--
|
|
-- - `method`: Which HTTP method to use, for instance `"PATCH"` or `"DELETE"`.
|
|
-- - `redirect`: Whether to follow HTTP redirects. Defaults to true.
|
|
--
|
|
-- @see http.get For a synchronous way to make GET requests.
|
|
-- @see http.post For a synchronous way to make POST requests.
|
|
--
|
|
-- @changed 1.63 Added argument for headers.
|
|
-- @changed 1.80pr1 Added argument for binary handles.
|
|
-- @changed 1.80pr1.6 Added support for table argument.
|
|
-- @changed 1.86.0 Added PATCH and TRACE methods.
|
|
function request(...) end
|
|
|
|
--- Make a HTTP GET request to the given url.
|
|
--
|
|
-- @tparam string url The url to request
|
|
-- @tparam[opt] { [string] = string } headers Additional headers to send as part
|
|
-- of this request.
|
|
-- @tparam[opt] boolean binary Whether to make a binary HTTP request. If true,
|
|
-- the body will not be UTF-8 encoded, and the received response will not be
|
|
-- decoded.
|
|
--
|
|
-- @tparam[2] {
|
|
-- url = string, headers? = { [string] = string },
|
|
-- binary? = boolean, method? = string, redirect? = boolean,
|
|
-- } request Options for the request. See @{http.request} for details on how
|
|
-- these options behave.
|
|
--
|
|
-- @treturn Response The resulting http response, which can be read from.
|
|
-- @treturn[2] nil When the http request failed, such as in the event of a 404
|
|
-- error or connection timeout.
|
|
-- @treturn string A message detailing why the request failed.
|
|
-- @treturn Response|nil The failing http response, if available.
|
|
--
|
|
-- @changed 1.63 Added argument for headers.
|
|
-- @changed 1.80pr1 Response handles are now returned on error if available.
|
|
-- @changed 1.80pr1 Added argument for binary handles.
|
|
-- @changed 1.80pr1.6 Added support for table argument.
|
|
-- @changed 1.86.0 Added PATCH and TRACE methods.
|
|
--
|
|
-- @usage Make a request to [example.tweaked.cc](https://example.tweaked.cc),
|
|
-- and print the returned page.
|
|
-- ```lua
|
|
-- local request = http.get("https://example.tweaked.cc")
|
|
-- print(request.readAll())
|
|
-- -- => HTTP is working!
|
|
-- request.close()
|
|
-- ```
|
|
function get(...) end
|
|
|
|
--- Make a HTTP POST request to the given url.
|
|
--
|
|
-- @tparam string url The url to request
|
|
-- @tparam string body The body of the POST request.
|
|
-- @tparam[opt] { [string] = string } headers Additional headers to send as part
|
|
-- of this request.
|
|
-- @tparam[opt] boolean binary Whether to make a binary HTTP request. If true,
|
|
-- the body will not be UTF-8 encoded, and the received response will not be
|
|
-- decoded.
|
|
--
|
|
-- @tparam[2] {
|
|
-- url = string, body? = string, headers? = { [string] = string },
|
|
-- binary? = boolean, method? = string, redirect? = boolean,
|
|
-- } request Options for the request. See @{http.request} for details on how
|
|
-- these options behave.
|
|
--
|
|
-- @treturn Response The resulting http response, which can be read from.
|
|
-- @treturn[2] nil When the http request failed, such as in the event of a 404
|
|
-- error or connection timeout.
|
|
-- @treturn string A message detailing why the request failed.
|
|
-- @treturn Response|nil The failing http response, if available.
|
|
--
|
|
-- @since 1.31
|
|
-- @changed 1.63 Added argument for headers.
|
|
-- @changed 1.80pr1 Response handles are now returned on error if available.
|
|
-- @changed 1.80pr1 Added argument for binary handles.
|
|
-- @changed 1.80pr1.6 Added support for table argument.
|
|
-- @changed 1.86.0 Added PATCH and TRACE methods.
|
|
function post(...) end
|
|
|
|
--- Asynchronously determine whether a URL can be requested.
|
|
--
|
|
-- If this returns `true`, one should also listen for @{http_check} which will
|
|
-- container further information about whether the URL is allowed or not.
|
|
--
|
|
-- @tparam string url The URL to check.
|
|
-- @treturn true When this url is not invalid. This does not imply that it is
|
|
-- allowed - see the comment above.
|
|
-- @treturn[2] false When this url is invalid.
|
|
-- @treturn string A reason why this URL is not valid (for instance, if it is
|
|
-- malformed, or blocked).
|
|
--
|
|
-- @see http.checkURL For a synchronous version.
|
|
function checkURLAsync(url) end
|
|
|
|
--- Determine whether a URL can be requested.
|
|
--
|
|
-- If this returns `true`, one should also listen for @{http_check} which will
|
|
-- container further information about whether the URL is allowed or not.
|
|
--
|
|
-- @tparam string url The URL to check.
|
|
-- @treturn true When this url is valid and can be requested via @{http.request}.
|
|
-- @treturn[2] false When this url is invalid.
|
|
-- @treturn string A reason why this URL is not valid (for instance, if it is
|
|
-- malformed, or blocked).
|
|
--
|
|
-- @see http.checkURLAsync For an asynchronous version.
|
|
--
|
|
-- @usage
|
|
-- ```lua
|
|
-- print(http.checkURL("https://example.tweaked.cc/"))
|
|
-- -- => true
|
|
-- print(http.checkURL("http://localhost/"))
|
|
-- -- => false Domain not permitted
|
|
-- print(http.checkURL("not a url"))
|
|
-- -- => false URL malformed
|
|
-- ```
|
|
function checkURL(url) end
|
|
|
|
--- Open a websocket.
|
|
--
|
|
-- @tparam string url The websocket url to connect to. This should have the
|
|
-- `ws://` or `wss://` protocol.
|
|
-- @tparam[opt] { [string] = string } headers Additional headers to send as part
|
|
-- of the initial websocket connection.
|
|
--
|
|
-- @treturn Websocket The websocket connection.
|
|
-- @treturn[2] false If the websocket connection failed.
|
|
-- @treturn string An error message describing why the connection failed.
|
|
-- @since 1.80pr1.1
|
|
-- @changed 1.80pr1.3 No longer asynchronous.
|
|
-- @changed 1.95.3 Added User-Agent to default headers.
|
|
function websocket(url, headers) end
|
|
|
|
--- Asynchronously open a websocket.
|
|
--
|
|
-- This returns immediately, a @{websocket_success} or @{websocket_failure}
|
|
-- will be queued once the request has completed.
|
|
--
|
|
-- @tparam string url The websocket url to connect to. This should have the
|
|
-- `ws://` or `wss://` protocol.
|
|
-- @tparam[opt] { [string] = string } headers Additional headers to send as part
|
|
-- of the initial websocket connection.
|
|
-- @since 1.80pr1.3
|
|
-- @changed 1.95.3 Added User-Agent to default headers.
|
|
function websocketAsync(url, headers) end
|