Page 1 sur 2

os.execute, curl et double quotes

Publié : 09 juil. 2017, 23:24
par dokho
Bonsoir,

J'ai un problème avec un script dans lequel j'appelle, via curl, une url contenant des doubles quotes:

Code : Tout sélectionner

os.execute('curl http://192.168.x.XXX/control?cmd=NEXTION,tempatelier.txt="HELLO WORLD"')
J'ai essayé pas mal de combinaison mais sans succès ... si une âme charitable pouvait m'indiquer la solution :)


Merci.

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 01:29
par Chrominator
As-tu essayé ce qui suit ?

Code : Tout sélectionner

os.execute('curl http://192.168.x.XXX/control?cmd=NEXTION,tempatelier.txt=%22HELLO WORLD%22')

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 07:31
par dokho
Chrominator a écrit :As-tu essayé ce qui suit ?

Code : Tout sélectionner

os.execute('curl http://192.168.x.XXX/control?cmd=NEXTION,tempatelier.txt=%22HELLO WORLD%22')
Bonjour,

Essayé à l'instant et ça ne fonctionne pas :(

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 11:33
par vil1driver
Salut,

Code : Tout sélectionner

-- encode du texte pour le passer dans une url
function url_encode(str)
  if (str) then
    str = string.gsub (str, "\n", "\r\n")
    str = string.gsub (str, "([^%w %-%_%.%~])",
        function (c) return string.format ("%%%02X", string.byte(c)) end)
    str = string.gsub (str, " ", "+")
  end
  return str	
end

local txt = "hello world"

os.execute('/usr/bin/curl -m 15 "http://192.168.x.XXX/control?cmd=NEXTION,tempatelier.txt='..url_encode(txt)..'" &')

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 17:21
par dokho
Salut vil1driver,

Je viens de tester: ça ne fonctionne pas non plus :(

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 17:48
par vil1driver
alors le problem est ailleurs,

teste déjà les choses dans un navigateur..

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 17:48
par dokho
Dans un navigateur ou en ligne de commande dans une console ça passe nickel

Envoyé de mon SM-N9005 en utilisant Tapatalk

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 18:16
par vil1driver
bah si tu sais quelle commande va bien, utilise la dans le script...

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 18:39
par dokho
Ce n'est pas aussi simple que ça ...

Ceci fonctionne dans un navigateur:

Code : Tout sélectionner

http://192.168.0.239/control?cmd=NEXTION,tempatelier.txt="hello"
Ceci fonctionne dans un terminal:

Code : Tout sélectionner

curl 'http://192.168.0.239/control?cmd=NEXTION,tempatelier.txt="test"'
Mais ça dans un script je n'arrive pas à trouver ce qui fonctionne ... :(

Re: os.execute, curl et double quotes

Publié : 10 juil. 2017, 18:48
par dokho
La commande qui permet de régler l'éclairage de l'écran fonctionne sans problème dans le script:

Code : Tout sélectionner

os.execute('curl http://192.168.0.239/control?cmd=NEXTION,dim=0')
Le problème vient des doubles quotes, je ne sais pas comment les passer ... et j'aimerais éviter de passer par un script bash ou du mqtt ...