Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1130 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [Curl] problème d'interprétation des quotes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Curl] problème d'interprétation des quotes

n°2249471
alandon
Posté le 27-01-2015 à 09:53:39  profilanswer
 

Bonjour,
 
J'ai un problème pour faire interpréter un script curl sous mon serveur linux de type centos 6, en clair je n'arrive pas à faire interpréter les quotes puisque dès que mon code ne possède pas de quotes, j'ai bien une réponse correcte à mon code.
Pourriez-vous m'aider SVP ?
 
Pour info mais c'est pas le problème: API_CODE est normalement remplacé par une chaine de plusieurs caractères
 
Avec les doubles quotes:
 

Code :
  1. [root@super ~]# curl -k "https://192.168.0.254/api/?type=config&action=get&xpath=/config/devices/entry/vsys/entry[@name='vsys1']/address/entry[@name='Spastic']&key=API_CODE"


Voici la réponse:

Code :
  1. curl: (3) [globbing] illegal character in range specification at pos 90


 
Avec les simples quotes:

Code :
  1. [root@super ~]# curl -k 'https://192.168.0.254/api/?type=config&action=get&xpath=/config/devices/entry/vsys/entry[@name='vsys1']/address/entry[@name='Spastic']&key=API_CODE'


Même retour:

Code :
  1. curl: (3) [globbing] illegal character in range specification at pos 90


 
Merci

mood
Publicité
Posté le 27-01-2015 à 09:53:39  profilanswer
 

n°2249479
alandon
Posté le 27-01-2015 à 10:47:59  profilanswer
 

J'ai essayé ça aussi mais rien à faire:
 

Code :
  1. [root@nagios]# curl -k "https://192.168.0.254/api/?type=config&action=get&xpath=/config/devices/entry/vsys/entry[@name=\"vsys1\"]/address/entry[@name=\"Spastic\"]&key=API_KEY"


curl: (3) [globbing] illegal character in range specification at pos 90
 

Code :
  1. [root@nagios ]# curl -k 'https://192.168.0.254/api/?type=config&action=get&xpath=/config/devices/entry/vsys/entry[@name=\"vsys1\"]/address/entry[@name=\"Spastic\"]&key=API_KEY'


curl: (3) [globbing] illegal character in range specification at pos 90
 
 
 
:??:


Message édité par alandon le 27-01-2015 à 10:48:16
n°2249485
gilou
Modérateur
Modzilla
Posté le 27-01-2015 à 11:22:04  profilanswer
 

Ben a la position 90, c'est un @ que tu as, et c'est manifestement ça qui ne lui plait pas.
Il y a peut être un élément de réponse ici: http://stackoverflow.com/questions [...] -post-data
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2249488
alandon
Posté le 27-01-2015 à 11:37:53  profilanswer
 

gilou a écrit :

Ben a la position 90, c'est un @ que tu as, et c'est manifestement ça qui ne lui plait pas.
Il y a peut être un élément de réponse ici: http://stackoverflow.com/questions [...] -post-data
A+,


 
 
Même en remplaçant tous mes caractères comme ceci: ça ne fonctionne pas et la position reste toujours la même:
@ = %40
& = %26
 
 

Code :
  1. [root@nagios ]# curl -k "https://192.168.0.254/api/?type=config%26action=get%26xpath=/config/devices/entry/vsys/entry[%40name='vsys1']/address/entry[%40name='Spastic']%26key=API_KEY"


 
curl: (3) [globbing] error: bad range specification after pos 94
 
 
Aussi avec des variables:

Code :
  1. [root@nagios ]# export A="&action"
  2. [root@nagios ]# export B="&xpath"
  3. [root@nagios ]# export C="'vsys1'"
  4. [root@nagios ]# export D="@name"
  5. [root@nagios ]# export E="&key"


 

Code :
  1. curl -k "https://192.168.0.254/api/?type=config$A=get$B=/config/devices/entry/vsys/entry[$D=$C]/address/entry[$D='Spastic']$E=API_KEY"


 
curl: (3) [globbing] illegal character in range specification at pos 90


Message édité par alandon le 27-01-2015 à 11:48:23
n°2249547
gilou
Modérateur
Modzilla
Posté le 27-01-2015 à 15:39:32  profilanswer
 

Mais pourquoi n'as tu pas essayé comme indiqué dans le lien
curl -k --data-urlencode "https://192.168.0.254/api/?type=config&action=get&xpath=/config/devices/entry/vsys/entry[@name='vsys1']/address/entry[@name='Spastic']&key=API_CODE"
 
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2249550
alandon
Posté le 27-01-2015 à 16:05:40  profilanswer
 

gilou a écrit :

Mais pourquoi n'as tu pas essayé comme indiqué dans le lien
curl -k --data-urlencode "https://192.168.0.254/api/?type=config&action=get&xpath=/config/devices/entry/vsys/entry[@name='vsys1']/address/entry[@name='Spastic']&key=API_CODE"
 
 
A+,


 
 
Bah je ne sais pas ce qui me manque, je suis sous centos 6:
 

Code :
  1. [root@nagios ~]# curl -k --data-urlencode "https://192.168.0.254/api/?type=config&action=get&xpath=/config/devices/entry/vsys/entry[@name='vsys1']/address/entry[@name='Spastic']&key=API_CODE"


curl: no URL specified!
curl: try 'curl --help' or 'curl --manual' for more information

Code :
  1. [root@nagios ~]# curl -k --data-urlencode 'https://192.168.0.254/api/?type=config&action=get&xpath=/config/devices/entry/vsys/entry[@name='vsys1']/address/entry[@name='Spastic']&key=API_CODE'


curl: no URL specified!
curl: try 'curl --help' or 'curl --manual' for more information
 

n°2249551
gilou
Modérateur
Modzilla
Posté le 27-01-2015 à 16:07:40  profilanswer
 

et sans quotes autour?

curl -k --data-urlencode https://192.168.0.254/api/?type=config&action=get&xpath=/config/devices/entry/vsys/entry[@name='vsys1']/address/entry[@name='Spastic']&key=API_CODE


A+,

Message cité 1 fois
Message édité par gilou le 27-01-2015 à 16:08:25

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2249557
alandon
Posté le 27-01-2015 à 16:23:32  profilanswer
 

gilou a écrit :

et sans quotes autour?

curl -k --data-urlencode https://192.168.0.254/api/?type=config&action=get&xpath=/config/devices/entry/vsys/entry[@name='vsys1']/address/entry[@name='Spastic']&key=API_CODE


A+,


 
 
C'est un petit mieux sans les quotes autour mais vraiment un petit peu  :)  
 

Code :
  1. [root@nagios ~]# curl -k --data-urlencode https://192.168.0.254/api/?type=con [...] vsys/entry[@name='vsys1']/address/entry[@name='Spastic']&key=API_KEY


[1] 3423
[2] 3424
[3] 3425
[2]-  Done                    action=get
[root@nagios  ~]# curl: no URL specified!
curl: try 'curl --help' or 'curl --manual' for more information
 
[1]-  Exit 2                  curl -k --data-urlencode https://192.168.0.254/api/?type=config
[3]+  Done                    xpath=/config/devices/entry/vsys/entry[@name='vsys1']/address/entry[@name='Spastic']
[root@nagios  ~]#

n°2249558
alandon
Posté le 27-01-2015 à 16:26:53  profilanswer
 

Et pas vraiment mieux en remplaçant les caractères
 

Code :
  1. [root@nagios ~]# curl -k --data-urlencode https://192.168.0.254/api/?type=con [...] vsys/entry[%40name='vsys1']/address/entry[%40name='Spastic']%26key=API_KEY


curl: no URL specified!
curl: try 'curl --help' or 'curl --manual' for more information

Code :
  1. [root@nagios  ~]# curl -k --data-urlencode "https://192.168.0.254/api/?type=config%26action=get%26xpath=/config/devices/entry/vsys/entry[%40name='vsys1']/address/entry[%40name='Spastic']%26key=API_KEY"


curl: no URL specified!
curl: try 'curl --help' or 'curl --manual' for more information
 

n°2249573
gilou
Modérateur
Modzilla
Posté le 27-01-2015 à 18:08:37  profilanswer
 

> Et pas vraiment mieux en remplaçant les caractères  
surtout pas avec --data-urlencode
J'essaierais ceci à tout hasard:

curl -k --data-urlencode https://192.168.0.254/api/?type=config&action=get&xpath="/config/devices/entry/vsys/entry[@name='vsys1']/address/entry[@name='Spastic']"&key=API_CODE


vu que c'est ton xpath qui semble coincer ici.
 
autre possibilité a tenter:

curl -k -g --data-urlencode https://192.168.0.254/api/?type=config&action=get&xpath=/config/devices/entry/vsys/entry[@name='vsys1']/address/entry[@name='Spastic']&key=API_CODE


parce que [] n'est pas autorisé dans la syntaxe des urls et est interprété par curl comme autre chose
C'est d'ailleurs ce qui provoquait ton message d'erreur initial: curl: (3) [globbing] illegal character in range specification at pos 90
en effet, après un [, curl attends quelque chose de la forme nombre_début-nombre_fin] et nom pas un truc avec un @
 
A+,


Message édité par gilou le 28-01-2015 à 14:35:07

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
mood
Publicité
Posté le 27-01-2015 à 18:08:37  profilanswer
 

n°2249625
alandon
Posté le 28-01-2015 à 14:52:52  profilanswer
 

Pas mieux:
 

Code :
  1. [root@nagios ~]# curl -k --data-urlencode https://192.168.0.254/api/?type=con [...] vsys/entry[@name='vsys1']/address/entry[@name='Spastic']"&key=API_KEY


[1] 14447
[2] 14448
[3] 14449
[root@nagios ~]# curl: no URL specified!
curl: try 'curl --help' or 'curl --manual' for more information
 
[1]   Exit 2                  curl -k --data-urlencode https://192.168.0.254/api/?type=config
[2]-  Done                    action=get
[3]+  Done                    xpath="/config/devices/entry/vsys/entry[@name='vsys1']/address/entry[@name='Spastic']"
[root@nagios ~]#
 
 
 
 

Code :
  1. [root@nagios ~]# curl -k -g --data-urlencode https://192.168.0.254/api/?type=con [...] vsys/entry[@name='vsys1']/address/entry[@name='Spastic']&key=API_KEY


[1] 15513
[2] 15514
[3] 15515
[root@nagios ~]# curl: no URL specified!
curl: try 'curl --help' or 'curl --manual' for more information
 
[1]   Exit 2                  curl -k -g --data-urlencode https://192.168.0.254/api/?type=config
[2]-  Done                    action=get
[3]+  Done                    xpath=/config/devices/entry/vsys/entry[@name='vsys1']/address/entry[@name='Spastic']
[root@nagios ~]#


Message édité par alandon le 28-01-2015 à 14:53:25
n°2249631
olivthill
Posté le 28-01-2015 à 15:29:44  profilanswer
 

Il y a avait eu un essai en remplaçant :
@ = %40  
 
Peut-être il faudrait continuer dans cette voix en remplaçant aussi les crochets
[=%5B
]=%5D
 
Par contre, il n'est pas sûr qu'il faille remplacer & = %26 car c'est un caractère valide pour une URL, tout comme le point d'interrogation.

n°2249638
gilou
Modérateur
Modzilla
Posté le 28-01-2015 à 15:52:19  profilanswer
 

Donc tester ceci:

curl -k "https://192.168.0.254/api/?type=config&action=get&xpath=/config/devices/entry/vsys/entry%5B%40name='vsys1'%5D/address/entry%5B%40name='Spastic'%5D&key=API_CODE"


et

curl -k -g  "https://192.168.0.254/api/?type=config&action=get&xpath=/config/devices/entry/vsys/entry[@name='vsys1']/address/entry[@name='Spastic']&key=API_CODE"


qui fait peut être la même chose en plus simple
 
A+,

Message cité 1 fois
Message édité par gilou le 28-01-2015 à 16:01:36

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2249639
gilou
Modérateur
Modzilla
Posté le 28-01-2015 à 15:56:57  profilanswer
 

>> C'est un petit mieux sans les quotes autour mais vraiment un petit peu
Euh non finalement pas, j'ai compris les messages avec [1] [2]...: le shell a compris les & comme autant de séparateurs de process en background  :D  
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2249650
alandon
Posté le 28-01-2015 à 16:54:43  profilanswer
 

gilou a écrit :

Donc tester ceci:

curl -k "https://192.168.0.254/api/?type=config&action=get&xpath=/config/devices/entry/vsys/entry%5B%40name='vsys1'%5D/address/entry%5B%40name='Spastic'%5D&key=API_CODE"


et

curl -k -g  "https://192.168.0.254/api/?type=config&action=get&xpath=/config/devices/entry/vsys/entry[@name='vsys1']/address/entry[@name='Spastic']&key=API_CODE"


qui fait peut être la même chose en plus simple
 
A+,


 
Les deux fonctionnent ! C'est chouette !  
MERCI BEAUCOUP pour ton aide  :jap:  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [Curl] problème d'interprétation des quotes

 

Sujets relatifs
[Résolu] Problème Index.html quand hébergéProbleme connexion yahoo CSS
[PHP] [Curl] Problème avec les espacesProblème police d'écriture PC/téléphone
Jeu de plateforme AS3 (problème de passage de niveau)Problème du voisin le plus proche sur R
Problème d'algo pour le jour suivant d'une date[POWER SHELL] Problème d'import de module Active Directory
Problème sur l'entame de ce code 
Plus de sujets relatifs à : [Curl] problème d'interprétation des quotes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR