HTTP
HTTP can be used to send HTTP requests.
Functions
Sends a DELETE HTTP request to the provided url.
The request is asynchronous, not blocking execution.
Response can be obtained through callback function parameter.
Optionally, a table with request headers can be provided after the url parameter.
local url = "https://jsonplaceholder.typicode.com/posts/1" -- public test API
HTTP:Delete(url, function(res)
  if res.StatusCode ~= 200 then
    print("Error " .. res.StatusCode)
    return
  end
  print("Post successfully deleted!")
end)
										
									
								Sends a GET HTTP request to the provided url.
The request is asynchronous, not blocking execution.
Response can be obtained through callback function parameter.
Optionally, a table with request headers can be provided after the url parameter.
local url = "https://jsonplaceholder.typicode.com/users" -- public test API
HTTP:Get(url, function(res)
  if res.StatusCode ~= 200 then
    print("Error " .. res.StatusCode)
    return
  end
  -- body contains array of user objects
  users,err = JSON:Decode(res.Body)
  local user = users[1]
  print(user.id, user.name, user.email)
  -- prints 1 Leanne Graham [email protected]
end)
										
									
								Sends a PATCH HTTP request to the provided url.
The request is asynchronous, not blocking execution.
If body is a table it gets JSON encoded, otherwise it is sent as a string or raw Data.
Response can be obtained through callback function parameter.
Optionally, a table with request headers can be provided after the url parameter.
local url = "https://jsonplaceholder.typicode.com/posts/1" -- public test API
local headers = {}
headers["Content-Type"] = "application/json"
local body = {}
body.title = "updated title"
HTTP:Patch(url, headers, body, function(res)
  if res.StatusCode ~= 200 then
    print("Error " .. res.StatusCode)
    return
  end
  -- response contains updated post
  post,err = JSON:Decode(res.Body)
  print(post.id, post.title)
  -- prints 1 updated title
end)
										
									
								Sends a POST HTTP request to the provided url.
The request is asynchronous, not blocking execution.
If body is a table it gets JSON encoded, otherwise it is sent as a string or raw Data.
Response can be obtained through callback function parameter.
Optionally, a table with request headers can be provided after the url parameter.
local url = "https://jsonplaceholder.typicode.com/posts" -- public test API
local headers = {}
headers["Content-Type"] = "application/json"
local body = {}
body.title = "foo"
body.body = "bar"
body.userId = 1
HTTP:Post(url, headers, body, function(res)
  if res.StatusCode ~= 201 then
    print("Error " .. res.StatusCode)
    return
  end
  -- response contains created post
  post,err = JSON:Decode(res.Body)
  print(post.id, post.title, post.body, post.userId)
  -- prints 101 foo bar 1
end)