Module requests.lua

Web requests and data parsing.

Mimics basic api of Python's requests module. Requires cURL to work, as requests.lua is simply a lua wrapper for the cURL command line interface.

Functions

requests.delete (url, args) Make a DELETE request
requests.get (url, args) Make a GET request
requests.post (url, args) Make a POST request
requests.put (url, args) Make a PUT request
requests.request (method, url, args) Make an HTTP request

Class Request

Request:build () Build command for curl from request
Request:send (cmd) Send curl command and return parsed response
Request:verify () Verify request parameters

Class Response

Response:iter_lines () Iterate over the lines in the text of a response
Response:json () Convert a json formatted response text to a lua table
Response:raise_for_status () Check if the response was successful.

Class Response - properties

Response.content_length Content length of response
Response.content_type Content type of response
Response.encoding Encoding type of response


Functions

requests.delete (url, args)
Make a DELETE request

Parameters:

  • url string url to request
  • args table request arguments

Returns:

    Response response to request

See also:

requests.get (url, args)
Make a GET request

Parameters:

  • url string url to request
  • args table request arguments

Returns:

    Response response to request

See also:

Usage:

    -- Send GET request to https://example.com
     local response = requests.get('https://example.com')
    -- Send GET request to http://example.com?value=1
     local response = requests.get{'http://example.com', params={value=1}}
requests.post (url, args)
Make a POST request

Parameters:

  • url string url to request
  • args table request arguments

Returns:

    Response response to request

See also:

Usage:

    -- POST json data '{"value":1}' to http://example.com
     local response = requests.post{'http://example.com', data={value=1}}
    -- OR
     local response = requests.post{'http://example.com', data='{"value":1}'}
requests.put (url, args)
Make a PUT request

Parameters:

  • url string url to request
  • args table request arguments

Returns:

    Response response to request

See also:

requests.request (method, url, args)
Make an HTTP request

Parameters:

  • method string one of GET, POST, PUT, DELETE
  • url string url to request
  • args table Possible request arguments:
    • auth: (table) http-auth credentials {user, pass}
    • data: (table or string) data to be sent in request
    • files: (table) files to be sent in request data {field_name=file_path,...}
    • headers: (table) http-headers to be sent in request
    • user_agent: (string) user agent to be sent in request
    • verify_ssl: (bool) verify SSL certificate of response

Returns:

    Response response to request

Class Request

Request object
Request:build ()
Build command for curl from request

Returns:

    objects.list curl command in list form
Request:send (cmd)
Send curl command and return parsed response

Parameters:

  • cmd table list of commands

Returns:

    Response response to request
Request:verify ()
Verify request parameters

Raises:

error with format described by following regex: Invalid request: (.*)

Class Response

Response object returned by requests.request
Response:iter_lines ()
Iterate over the lines in the text of a response

Returns:

    iterator of lines in response text
Response:json ()
Convert a json formatted response text to a lua table

Returns:

    table dictionary-like table of response
Response:raise_for_status ()
Check if the response was successful. A successful response has a status_code between 200 and 399.

Raises:

error with format described by following regex: error in ([^ ]+) response: ([0-9]+)

Class Response - properties

Response.content_length
Content length of response
Response.content_type
Content type of response
Response.encoding
Encoding type of response
generated by LDoc 1.4.6 Last updated 2018-11-10 22:55:04