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