So, I've run into a wall on something as ease as a POST function to a API.
How do I format the request to get this to work?
This is as far as I've gotten. I'm getting code 400, request is missing or has invalid values.
I guess it's a small matter, but i have not worked with POST functions before.
How do I format the request to get this to work?
Code:
curl --request POST \
--url https://api.easee.cloud/api/chargers/EH840488/settings \
--header 'Authorization: Bearer *****MY TOKEN*****' \
--header 'content-type: application/*+json' \
--data '
{
"dynamicChargerCurrent": 16
}
'
Code:
function WriteToEasee(request, request_body)
request_url = 'https://api.easee.cloud/api/' .. request
local response_body = {}
local request_body = ""
local body, code, hdrs, stat = ssl.https.request{
url = request_url;
method = "POST";
headers =
{
["Content-Type"] = "application/json";
["Authorization"] = "Bearer " .. API_Token;
};
source = ltn12.source.string(request_body);
sink = ltn12.sink.table(response_body);
}
log(code)
if code == 200 then
ret = table.concat(response_body)
ret = json.pdecode(ret)
return ret
else
--API_Token = GetToken() -- request a new token
end
end
dynCurr = 10
-- Dynamic current setting.
WriteToEasee('chargers/' .. ChargerID .. '/settings', "dynamicChargerCurrent" .. dynCurr)
I guess it's a small matter, but i have not worked with POST functions before.