Espace dans une URL

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
ypoisson
Messages : 8
Inscription : 03 oct. 2016, 07:48

Espace dans une URL

Message par ypoisson »

Bonsoir,
J'écris pour sauver ma santé mentale car mon problème commence à me rendre fou :)
Mon objectif est d'affichier la prévision de pluie transmise par Météo France dans un device virtuel

Je récupère la valeur "De00h45_à_01h45_:_Pas_de_précipitations" (sans les guillemets) dans une variable "prevision".

Puis je veux mettre à jour un device virtuel via une commande curl
Pour cela je crée une variable qui va me servir de paramètre via la commande suivante :
varurl="http://192.168.1.53:8080/json.htm?type= ... {prevision}"

Problème, quoi que je fasse, j'ai un espace entre le = et le texte de ma précision.
Pire, si je force ma variable à la valeur "TOTO3, je n'ai plus d'espace :?

Je pense avoir tout essayer en terme de syntaxe, mais sans résultat.

Je suis convaincu que mon problème est idiot et que la solution est simple, mais impossible de la trouver.

Merci d'avance de votre aide.

A+
Chris54220
Messages : 124
Inscription : 20 mars 2016, 20:54
Localisation : Nancy

Re: Espace dans une URL

Message par Chris54220 »

essaye avec cette fonction je pense que sa ira mieux
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
il te rest plus que sa faire genre

varurl="http://192.168.1.53:8080/json.htm?type= ... prevision)
ypoisson
Messages : 8
Inscription : 03 oct. 2016, 07:48

Re: Espace dans une URL

Message par ypoisson »

Merci Chris54220.

Je m'aperçois que j'ai oublié un point important.

Je suis dans un bash.

Et je ne suis pas sur de savoir comment appeler une fonction depuis un bash :oops:
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Espace dans une URL

Message par patrice »

Bonsoir
Bizarre ton espace

Si je fais ca

Code : Tout sélectionner

#!/bin/bash
prevision="De00h45_à_01h45_:_Pas_de_précipitations"

varurl="http://192.168.1.53:8080/json.htm?type=command&param=udevice&idx=19&nvalue=0&svalue=""${prevision}"

echo  $prevision
echo $varurl

je n'ai pas d'espace
c'est donc ta chaine initiale, prevision qui contient un espace avant le De....
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
ypoisson
Messages : 8
Inscription : 03 oct. 2016, 07:48

Re: Espace dans une URL

Message par ypoisson »

Effectivement.
A l'origine, un problème de lecture de fichier JSON
Je n'avais pas vu qu'il y avait 2 valeurs correspondant à mon champs.
Merci de ton aide.
Répondre