trist06 Posté(e) le 15 février 2015 Signaler Partager Posté(e) le 15 février 2015 Bonjour à tous, Heureux propriétaire d'une HC2 depuis 2 semaines, je bloque sur un problème de code LUA/PHP J'ai mis en place une page php sur mon synology, j'aimerais récupérer a l'aide de cette page les données poster par ma HC2. HC3 = Net.FHttp("192.168.xxx.xxx") jsonPassT = {val1 = tostring(val1), val2 = tostring(val2)} jsonPassS = json.encode(jsonPassT) response = HC3:POST("/recup/", jsonPassS) fibaro:debug('OK') Du coté de ma page web en php (présente sur mon NAS à l'url suivante 192.168.xxx.xxx/recup/) je n'arrive pas a récupérer ma chaine json depuis la variable $_POST. Merci par avance pour votre aide. Lien vers le commentaire Partager sur d’autres sites More sharing options...
trist06 Posté(e) le 16 février 2015 Auteur Signaler Partager Posté(e) le 16 février 2015 J'ai finalement trouvé, j'ai récupéré les données en utilisant la variable $HTTP_RAW_POST_DATA Étonné je ne trouve vraiment aucune documentation des commandes Net.FHttp, n'y a t-il vraiment aucune possibilité de déclaré une en-tête HTTP ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Krikroff Posté(e) le 17 février 2015 Signaler Partager Posté(e) le 17 février 2015 Non impossible de déclarer une entête avec Net.FHttp ou alors il faut utiliser mon framework LUA voir coder toi même FHttp avec TCPSocket comme j'ai fait dans le framework. Sinon en V4 il y a net.HTTPClient() Lien vers le commentaire Partager sur d’autres sites More sharing options...
trist06 Posté(e) le 17 février 2015 Auteur Signaler Partager Posté(e) le 17 février 2015 Sinon en V4 il y a net.HTTPClient() J'ai honte, mais je n'arrive pas àle faire fonctionner sur un virtual device, est-ce normal ? Avez vous un exemple d'une requete GET sur une page ? Est-ce natif en version 4 ? Y a t-il une documentation ? Désolé et merci pour vos réponses Lien vers le commentaire Partager sur d’autres sites More sharing options...
Krikroff Posté(e) le 17 février 2015 Signaler Partager Posté(e) le 17 février 2015 Voici un exemple qui récupère les devices et boucle dessus local httpClient = net.HTTPClient(); httpClient:request('http://127.0.0.1:11111/api/devices', { success = function(resp) print('At ' .. os.date() .. ' - status = ' .. resp.status) local devices = json.decode(resp.data) for i, v in pairs(devices) do print('id:' .. v.id .. ' type:' .. v.type); end end, error = function(err) print('error = ' .. err) end, options = { method = 'GET' } }); Lien vers le commentaire Partager sur d’autres sites More sharing options...
trist06 Posté(e) le 17 février 2015 Auteur Signaler Partager Posté(e) le 17 février 2015 Super cela me permet de comprendre la syntaxe d'une requette GET. Comment peut on obtenir une documentation sur net.HTTPclient() ? Comment peut on modifier ajouter un header html personnalisé ? Comment peut envoyer des données en POST ? Le manque de documentation n'est pas facile..pourquoi n'y a t-il pas ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
trist06 Posté(e) le 18 février 2015 Auteur Signaler Partager Posté(e) le 18 février 2015 Voici ce que j'ai pu trouver. Je vais je pense pouvoir me débrouiller avec ca : request(url, options, succes, error) overview: Sends http request to server. params: url: type: string discution: Url of the the server. options: type: array discution: Array(key => value) with pairs (headers => value, data => value, method => vale, timeout => value). succes: type: callback function discution:Called after a successful connection. error: type: callback function discution:Called after a faild connection. Lien vers le commentaire Partager sur d’autres sites More sharing options...
trist06 Posté(e) le 19 février 2015 Auteur Signaler Partager Posté(e) le 19 février 2015 httpClient:request('http://MONURL', { success = function(resp) local val1 = json.decode(resp.data) fibaro:setGlobal('data', val1.result.success) fibaro:debug('Valeur dans la requette :' ..val1.result.success ) end, error = function (err) print('Erreur de requête HTTP :'..err) end, options = { method = 'GET' } }); fibaro:debug('Global :'..fibaro:getGlobalValue('data')) J'ai un petit soucis dans ce code, le debug de la fonction success semble être exécuté après le debug qui affiche la variable globale, je ne comprend pas pourquoi.. Avez-vous une idée ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés