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:
Returns:
-
Response
response to request
See also:
- requests.get (url, args)
-
Make a GET request
Parameters:
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:
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:
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]+)