web-dev-qa-db-fra.com

Enregistrer le corps de réponse dans un fichier à partir de la demande de boucle

J'utilise curl contre une webapi qui sait renvoyer un fichier pour une demande de publication particulière (l'exécuter dans le navigateur déclencherait le navigateur pour ouvrir une boîte de dialogue "enregistrer le fichier"). Mon intention est de faire écrire les octets de réponse dans un fichier. J'utilise la commande suivante

curl -k -i -u username:password -X POST -H "Content-Type:application/json" -d @c:\\curl\\request_body_file.json -o config.cfg https://127.0.0.1:8000/myapi/trigger/export

Cependant, cela entraîne également l'écriture de l'en-tête de réponse dans le fichier de sortie, ce qui n'est pas mon souhait. Je n'ai besoin que du contenu de la réponse enregistré.

Voici à quoi ressemble le fichier de sortie:

TTP/1.1 200 OK
Content-Length: 12042
Content-Type: application/octet-stream; charset=UTF-8
Content-Disposition: attachment; filename=my_export
Date: Wed, 23 Oct 2013 09:30:47 GMT
Accept-Ranges: bytes
Server: Restlet-Framework/2.1.2
X-Auth-Token: Token ODVhMzk3OWY1NjcwMjg2ZGM0MDhmNTEzYTYwZmE4M2JhNTM1YmE0Yw==

xÚíÝÛãX~ØqÍÎŽçvfvervrevtrbyewd3334444 ................................ 

À quoi ressemblerait la commande curl pour réaliser ce que j'ai décrit précédemment.

Merci

13
klaus johan

De la documentation de curl:

-j'inclus

(HTTP) Inclut l'en-tête HTTP dans la sortie. L'en-tête HTTP comprend des éléments tels que le nom du serveur, la date du document, la version HTTP et plus encore ...

alors supprimez le paramètre -i

http://curl.haxx.se/docs/manpage.html

15
CamW

Vous pouvez simplement ajouter la sortie à un fichier

curl ... >> output-file.html
14
Daniel van Flymen