Page 1 sur 1

Espace dans une URL

Publié : 08 oct. 2016, 00:51
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+

Re: Espace dans une URL

Publié : 08 oct. 2016, 15:29
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)

Re: Espace dans une URL

Publié : 08 oct. 2016, 18:09
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:

Re: Espace dans une URL

Publié : 08 oct. 2016, 21:11
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....

Re: Espace dans une URL

Publié : 09 oct. 2016, 12:58
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.