web-dev-qa-db-fra.com

Comment passer plusieurs paramètres au cron job avec curl?

J'exécute deux tâches cron:

Celui-ci s'exécute sans problème:

curl -sS http://example.com/cronjob.php?days=1

Mais cela ne fonctionne pas du tout:

curl -sS http://example.com/cronjob.php?days=1&month=1

Est-ce à cause de l'esperluette (&)? Si oui, comment passer plusieurs paramètres?

L'utilisation de argv n'est pas une option.

46
Yeti

Vous remarquerez que cela ne fonctionne pas exactement non plus dans votre Shell.

Ce que vous devez faire est de mettre des guillemets simples autour de l'URL, comme ceci:

curl -sS 'http://example.com/cronjob.php?days=1&month=1'
91
SamB

Vous pouvez également utiliser\before & qui est un caractère spécial pour Shell. Généralement, & est l'un des caractères spéciaux significatifs pour Shell.

Ainsi, l'utilisation d'une barre oblique inverse [à côté de la solution Quoting] peut être une bonne solution à ce problème. plus

Dans votre exemple, vous pouvez simplement appliquer cette commande:

curl -sS http://example.com/cronjob.php?days=1\&month=1
4
MMKarami

Essayez une POST Request

curl -d "days=1&month=1" www.example.com/cronjob.php
1
streetparade