jjacques68 Posté(e) le 28 mai Signaler Posté(e) le 28 mai 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 !!
Lazer Posté(e) le 28 mai Signaler Posté(e) le 28 mai Tu peux enlever le Content-Length et la Host. Apparemment d'après Postman les datas sont dans un double tableau imbriqué, essaye donc comme ceci : data = json.encode({{ ["cmd"]="Login", ["param"]={ ["User"]={ ["Version"]="0", ["userName"]="admin", ["password"]="xxxxxxxxxxxxxx" } } }}) 1
jjacques68 Posté(e) le 28 mai Auteur Signaler Posté(e) le 28 mai (modifié) Il y a 1 heure, Lazer a dit : Apparemment d'après Postman les datas sont dans un double tableau imbriqué, essaye donc comme ceci : Je viens de voir cette remarque, et oui, c'est bien cela !! c'est quoi qui t'as fait voir ça ? ça ? [ { .... } ] Modifié le 28 mai par jjacques68
jjacques68 Posté(e) le 28 mai Auteur Signaler Posté(e) le 28 mai punaise... des heures sur cette m... MERCI !!!
Lazer Posté(e) le 28 mai Signaler Posté(e) le 28 mai il y a 25 minutes, jjacques68 a dit : c'est quoi qui t'as fait voir ça ? ça ? [ { .... } ] Oui tout à fait C"est typiquement le genre de truc sur lequel on peut buter des heures alors qu'un œil extérieur peut le voir Ce qui fonctionne bien aussi, c'est d'arrêter, faire autre chose, et s'y remettre le lendemain avec un œil neuf justement ! 1
Messages recommandés