mlebech Posté(e) le 2 novembre 2017 Signaler Posté(e) le 2 novembre 2017 Bonjour, J'ai un souci de communication entre ma HC2 et un automate qui contrôle notre local technique. Les équipements communiquent grâce à leur API respectives. Pour contrôler l'automate, j'ai besoin de faire un POST. J'ai fait un test avec un VD, le seul problème est que le message ne passe pas car il faut renseigner le content-type dans la commande à envoyer à l'automate pour que cela fonctionne. Hors dans un VD, j'ai utilisé comme test le code suivant (suivant API de l'automate): local ECLYPSE = Net.FHttp("xxx.xxx.x.xx",xx) ECLYPSE:setBasicAuthentication("xxxx", "xxxxx") local var_t='{"encode": "text","propertyReferences":[{"type": "analogValue","instance": 1,"property": "presentValue","value": "20"}]}' fibaro:debug(var_t) local response, status, errorCode = ECLYPSE:POST("/api/rest/v1/protocols/bacnet/local/objects/write-property-multiple",var_t) fibaro:debug("Diagnostic : "..response) fibaro:debug("Status : "..tonumber(status or 0)) Par contre, je ne sais pas où je peux renseigner le content-type qui doit être content-type:application/json. Je ne suis pas un informaticien chevronné, si quelqu'un peut me renseigner cela pourrait m'aider grandement. Cordialement, Maxime LEBECH
pepite Posté(e) le 3 novembre 2017 Signaler Posté(e) le 3 novembre 2017 Bonjour, J'ai peur que cela ne soit pas possible avec net.FHttp dans un VD, il va falloir, enfin je crois, passer par une scene et utiliser la fonction net.HTTPClient dans laquelle tu pourras mettre ton Header . Sinon as tu essaye de le mettre dans ta ligne ECLIPSE:POST...
mlebech Posté(e) le 3 novembre 2017 Auteur Signaler Posté(e) le 3 novembre 2017 Bonjour, Merci pour ton retour, je vais essayer ta deuxième proposition mais sans trop de de garantie, pour le net.HTTPClient, estc-e qu'il y a des tutos qui existent pour la mettre en application?
pepite Posté(e) le 3 novembre 2017 Signaler Posté(e) le 3 novembre 2017 Bonjour, voila un exemple, il y en a beaucoup sur le forum --[[ %% properties %% events %% globals --]] -- Message Descriptif du Backup local descriptif = 'Backup du '..os.date("%d/%m/%y - %HH%M") -- Password admin encodé en base64 local password = 'aWRpb3RAZ3Z1bGF2aWVyZ2UuY29tOnR1X3lfY3JveWFpc19oZWlu' local url = 'http://127.0.0.1/api/service/backups' local datas = '{"action":"create","params":{"name":"'..descriptif..'"}}' local httpClient = net.HTTPClient() httpClient:request(url , { success = function(response) if tonumber(response.status) == 201 or tonumber(response.status) == 202then print("Backup Created at " .. os.date()) else print("Error " .. response.status) end end, error = function(err) print('error = ' .. err) end, options = { method = 'POST', headers = { ["content-type"] = 'application/json', ["Authorization"] = 'Basic '..password }, data = datas } }); 2
mlebech Posté(e) le 3 novembre 2017 Auteur Signaler Posté(e) le 3 novembre 2017 merci, je regarde cela ce soir.
Messages recommandés