Question

Je joue actuellement avec couchdb et teste la fonctionnalité 'pièces jointes autonomes', décrite au bas de cette page .

J'essaie d'utiliser la fonctionnalité --data-urlencode de curl pour envoyer la demande de création, qui ne fonctionne que pour moitié. Je peux créer la pièce jointe et la récupérer, mais le champ Type de contenu est incorrect et l'image ne s'affichera donc pas correctement.

Pour être plus précis, CouchDB semble fonctionner en renvoyant la pièce jointe en utilisant le même type de contenu que celui dans lequel il a été posté. (Ce qui est parfaitement raisonnable, OMI) Mon problème est que curl n'envoie pas le code correct. Voici les détails;

 curl -vX PUT http://localhost:5984/dafttest/666/attachment --data-urlencode image/jpeg@xi_on_beach.jpg
* About to connect() to localhost port 5984 (#0)
*   Trying 127.0.0.1... connected
* Connected to localhost (127.0.0.1) port 5984 (#0)
> PUT /dafttest/666/attachment HTTP/1.1
> User-Agent: curl/7.19.4 (x86_64-pc-linux-gnu) libcurl/7.19.4 OpenSSL/0.9.8k zlib/1.2.3
> Host: localhost:5984
> Accept: */*
> Content-Length: 495389
> Content-Type: application/x-www-form-urlencoded
> Expect: 100-continue
>

La version abrégée de cette question est donc la suivante: comment obtenir cURL pour envoyer le type de contenu correct?

EDIT:

Je déclare que mon autre erreur a été d'utiliser --data-urlencode. Pour le faire fonctionner, je dois utiliser --data binary @filename avec l'option -H proposée par Dale.

Était-ce utile?

La solution

Vous pouvez ajouter des en-têtes avec le commutateur -H / - , afin de ajoutez un en-tête pour le type de contenu image / jpeg, ajoutez-le à votre commande:

  

-H "Type de contenu: image / jpeg"

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top