Hello tout le monde,
J'espère que vous allez bien !
j'essaye de convertir une requête http (testée et fonctionnelle avec Postman), dans un QuickApp.
Sans résultats
Incapable de dire pourquoi...
ci-joint une capture de ce que je fais avec Postman :
et les Headers :
Postman me permet d'afficher l'équivalent en HTTP :
POST /api.cgi?cmd=Login HTTP/1.1
Host: 192.168.3.24
Content-Type: application/json
Content-Length: 120
[
{
"cmd":"Login",
"param":{
"User":{
"Version": "0",
"userName":"admin",
"password":"xxxxxxxxxxxxxx"
}
}
}
]
et voilà ce que j'essaye de faire dans le QA :
local http = net.HTTPClient({timeout=3000})
http:request("http://192.168.3.24/api.cgi?cmd=Login", {
options={
method = 'POST',
headers = {
["Content-Type"] = "application/json",
["Content-Length"] = "120",
["Host"] = "192.168.3.24"
},
data=json.encode({
["cmd"]="Login",
["param"]={
["User"]={
["Version"]="0",
["userName"]="admin",
["password"]="xxxxxxxxxxxxxx"
}
}
})
--]]
},
success = function(response) self:debug(json.encode(response)) end,
error = function(error) self:error(json.encode(error)) end
})
la réponse est la suivante :
{"headers":{"Date":"Wed, 28 May 2025 16:30:06 GMT","Content-Length":"166","Connection":"close","Content-Type":"text\/html"},"data":"","status":400}
je tombe bien dans le "success".
Mais je sais pas pourquoi le device me retourne l'erreur 400 (donc requête invalide).
J'ai un doute avec le Content-Length, car si je le mets pas entre guillemets, donc en valeur numérique, j'ai l'erreur suivante :
[QUICKAPP1106]: std::exception: 'unable to make cast'
Ce serait ça qui bug ? ou autre chose ?
merci d'avance !!