Les caractères spéciaux comme @ et & dans cURL publier des données
Comment puis-je inclure des caractères spéciaux comme @ et & dans la boucle publier des données? Je suis en train de passer un nom et un mot de passe comme d':
curl -d name=john passwd=@31&3*J https://www.mysite.com
Cela causerait des problèmes comme @
est utilisé pour le chargement des fichiers et &
pour spécifier plus d'une clé/valeur. Est-il un moyen pour que je puisse échapper à ces personnages? \@
et \&
ne semble pas fonctionner.
Vous devez vous connecter pour publier un commentaire.
cURL > 7.18.0 a une option
--data-urlencode
qui résout ce problème. Grâce à lui, je peux tout simplement envoyer une requête POST comme--data-urlencode
uniquement pour les données de la partie qui en a besoin. Par exemple, le code suivant ne fonctionnera pas lorsque vous combinez les données en une seule entité:curl --data-urlencode "name=john&passwd=@31&3*J" https://www.example.com
--data-urlencode 'password=abc!123'
ou par la fuite de l'exclamation--data-urlencode password=abc\!123
. Plus d'infos: unix.stackexchange.com/questions/33339/...Comment sur l'utilisation de l'entité codes...
@ = %40
& = %26
Vous avez:
curl -d 'name=john&passwd=%4031%263*J' https://www.mysite.com
De guillemets doubles (" ") l'ensemble de la
URL
.Elle fonctionne.Viens de trouver une autre solutions a fonctionné pour moi. Vous pouvez utiliser '\' signe avant votre un de spécial.
Essayez ceci:
J'ai fait ce