2010-07-17 2 views
0

J'ai un script avec lequel je POSTE des données sur un serveur en utilisant cURL. Lorsque j'utilise un formulaire HTML pour afficher les mêmes données, le POST ressemble à quelque chose comme ça et tout va bien:Télécharger le contenu du fichier en utilisant cURL

description=Something&name=aName&xml=wholeBiunchOfData&xslt=moreData 

Le XML et XSLT sont grandes et changer; Je préférerais les conserver dans des fichiers externes. Cependant, ce qui suit ne fonctionne pas comme prévu;

curl --cookie cjar --cookie-jar cjar --location --output NUL^
--data "name=aName&description=Something"^
    --data "[email protected]"^
--data "[email protected]"^
http://someUrl.html 

J'ai essayé différentes combinaisons de fichiers @ et locaux sans succès. Comment afficher le contenu d'un fichier?

Répondre

1

Je vous recommande d'essayer ce qui suit:

curl --cookie cjar --cookie-jar cjar --location --output NUL^
--data "name=aName&description=Something"^
    --data-urlencode "[email protected]"^
--data-urlencode "[email protected]"^
http://someUrl.html 

XML (y compris les feuilles de style) devront être codées URL avant d'être fait partie d'une URL.

Vous pouvez également utiliser --trace-ascii - en tant que paramètre supplémentaire pour transférer l'entrée et la sortie en sortie standard pour un débogage ultérieur, et vous pouvez trouver plus d'informations sur le man page principal.

Espérons que cela aide!

+0

Fantastique! Merci beaucoup! – Upperstage

2

En regardant la page de manuel, il semble que la syntaxe --data @file ne permette pas de nommer une variable, elle doit être dans le fichier. http://paulstimesink.com/2005/06/29/http-post-with-curl/. Vous pouvez également utiliser un backtick

curl --cookie cjar --cookie-jar cjar --location --output NUL^
--data "name=aName&description=Something"^
--data "xml=`cat localFile.xml`"^
--data "xslt=`cat someFile.xml`"^
http://someUrl.html 
+0

Merci pour la réponse. – Upperstage

+0

Le lien dans cette réponse est cassé. –

+0

On dirait qu'il a été déplacé à http://paulstimesink.com/2005/06/29/http-post-with-curl/. –