This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

HTTP Request with body
#1
Hi everyone,

I'm doing a little script to make a post request to an API. The form that this request should take is attached in the image.

My code in LUA is:
Code:
require 'ltn12'
require('json')
http = require('socket.http')

http.TIMEOUT = 5

local url = 'http://192.168.0.163:3000/api/v1/hvac'
local response_body = {}

local body, code, hdrs, stat = http.request

{
    url = url;
    method = "POST";
      headers =
    {
        ["Content-Type"] = "application/json";

  };
      
    sink = ltn12.sink.table(response_body);
  }

log ( code, response_body)
Code:
* arg: 1
  * number: 500
* arg: 2
  * table:
   [1]
    * string: {"errors":[{"error":"request malformed"}]}

I know I also have to enter a request body for the request to be complete, but when i try to enter it in the script i don't get any log. I've been looking in the help section of LUA, but i can't get it out. Somebody can help me?

Attached Files Thumbnail(s)
   
Reply
#2
Here's an example i use for a Dutch weather API with JSON. This might help you.

--Source: http://weerlive.nl/delen.php
city = 'Amsterdam' --Vul hier de plaatsnaam in.

require('ssl.https')
require('json')

data = ssl.https.request('http://weerlive.nl/api/json-10min.php?locatie=' ..city)
datatable = json.pdecode(data)

datatable = datatable['liveweer'][1]
log(datatable)

city = datatable.plaats
log('Plaats: ' ..city)
Reply
#3
You need to provide content-length header and source string (which can be empty). See this post for an example: https://forum.logicmachine.net/showthrea...8#pid11098
Reply


Forum Jump: