problème d'interprétation des quotes [Curl] - Divers - Programmation
Marsh Posté le 27-01-2015 à 10:47:59
J'ai essayé ça aussi mais rien à faire: 
 
Code :
  | 
 
curl: (3) [globbing] illegal character in range specification at pos 90 
 
Code :
  | 
 
curl: (3) [globbing] illegal character in range specification at pos 90 
 
 
 ![]()
Marsh Posté le 27-01-2015 à 11:22:04
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+, 
Marsh Posté le 27-01-2015 à 11:37:53
| gilou a écrit : Ben a la position 90, c'est un @ que tu as, et c'est manifestement ça qui ne lui plait pas.   | 
 
 
 
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 :
  | 
 
 
curl: (3) [globbing] error: bad range specification after pos 94 
 
 
Aussi avec des variables: 
Code :
  | 
 
 
Code :
  | 
 
 
curl: (3) [globbing] illegal character in range specification at pos 90
Marsh Posté le 27-01-2015 à 15:39:32
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+,
Marsh Posté le 27-01-2015 à 16:05:40
| gilou a écrit : Mais pourquoi n'as tu pas essayé comme indiqué dans le lien   | 
 
 
 
Bah je ne sais pas ce qui me manque, je suis sous centos 6: 
 
Code :
  | 
 
curl: no URL specified! 
curl: try 'curl --help' or 'curl --manual' for more information 
Code :
  | 
 
curl: no URL specified! 
curl: try 'curl --help' or 'curl --manual' for more information 
 
Marsh Posté le 27-01-2015 à 16:07:40
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+,
Marsh Posté le 27-01-2015 à 16:23:32
| gilou a écrit : et sans quotes autour?  
    | 
 
 
 
C'est un petit mieux sans les quotes autour mais vraiment un petit peu  
  
 
Code :
  | 
 
[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  ~]# 
Marsh Posté le 27-01-2015 à 16:26:53
Et pas vraiment mieux en remplaçant les caractères 
 
Code :
  | 
 
curl: no URL specified! 
curl: try 'curl --help' or 'curl --manual' for more information 
Code :
  | 
 
curl: no URL specified! 
curl: try 'curl --help' or 'curl --manual' for more information 
 
Marsh Posté le 27-01-2015 à 18:08:37
> 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+,
Marsh Posté le 28-01-2015 à 14:52:52
Pas mieux: 
 
Code :
  | 
 
[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] 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 ~]#
Marsh Posté le 28-01-2015 à 15:29:44
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. 
Marsh Posté le 28-01-2015 à 15:52:19
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+,
Marsh Posté le 28-01-2015 à 15:56:57
>> 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  
  
 
A+,
Marsh Posté le 28-01-2015 à 16:54:43
| gilou a écrit : Donc tester ceci:  
   
    | 
 
 
Les deux fonctionnent ! C'est chouette !  
MERCI BEAUCOUP pour ton aide  
  
Marsh Posté le 27-01-2015 à 09:53:39
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:
Voici la réponse:
Avec les simples quotes:
Même retour:
Merci