Aller au contenu

HC3 ne prends pas en compte les variable dans une API request


Messages recommandés

Posté(e) (modifié)

Bonjour

Je cherche à faire une API request de mon HC3 vers un IPX800 et je rencontre un problème dans le support de la variable dans l'url.

Dans mon code source, je demande un requête sur mon IPX800 en précisant la variable cmd avec une valeur égale à 10 -"http://IPX800/api/xdevices.json?cmd=10"

La scene est validé mais le résultat correspond à l'url globale - "http://IP/api/xdevices.json"  --> {"product":"IPX800_V3"}

La variable commande n'est pas prise en compte. J'ai confirmé ce point en faisant une capture réseau de la requête HTTP.

Savez-vous comment surporter des variables dans l'url d'une API ? 

Ce script fonctionné correctement avec mon HC2.

 

Code déployé sur le HC3

function HTTPRequest()
    local http = net.HTTPClient()
    http:request("http://IPX800/api/xdevices.json?cmd=10", {
        options = {
            method = "GET",
            headers = {
                ["content-type"] = "application/json;charset=UTF-8",
                ["Cache-Control"] = "no-cache, no-store",                
                ["X-Fibaro-Version"] = "2"
            },
        },
        success = function(response)
            if (response.status == 200) then
                fibaro.trace("Cuve Eau-Niveau",url.."....> "..tostring(response.data))
            else
                fibaro.debug("Wrong status '"..response.status.."' in response!")
            end
        end,
        error = function(message)
            fibaro.debug("Connection error: " .. message)
        end
    })
end

netHTTPCLient.txt

Modifié par a031864
Posté(e)

voila ce que j'utililse pour mon ecodevice RT2

 

function QuickApp:GetRT2(action)
    local address = self.IPEDRT2.."/api/xdevices.json?key="..self.KeyAPI.."&"..action
    self.httpClient:request(address, {
        options={
            checkCertificate = true,
            method = 'GET'
        },
        success = function(response)
            data = json.decode(response.data)
            if data.status == "Success" then
               self:trace("Success")
            end
        end,
        error = function(error)
            self:debug('error: ' .. json.encode(error))
        end
    }) 
end 

 

  • 2 semaines après...
×
×
  • Créer...