Создание встроенной отдельное приложение с использованием curl


В настоящее время я играю с couchdb и тестирую функцию "автономных вложений", которая описана в нижней части этой страницы.

Я пытаюсь использовать функцию curl --data-urlencode для отправки запроса на создание, который работает только наполовину. Я могу создать вложение и извлечь его, но поле типа содержимого неверно, поэтому изображение не будет отображаться правильно.

Чтобы быть более точным CouchDB, кажется, работает, возвращая вложение, используя то же самое Контент-тип, в котором он был размещен. (что вполне разумно ИМО) моя проблема в том, что curl не отправляет правильный код. Вот подробности;

 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
>

Итак, краткая версия этого вопроса: как заставить cURL отправить правильный тип контента ?

Правка:

Я признаю, что другой моей ошибкой было использовать --data-urlencode, когда для его работы мне нужно использовать -- data binary @filename вместе с опцией-H, которую предложил Дейл.

1 7

1 ответ:

Вы можете добавить заголовки с помощью переключателя-H/--header, поэтому, чтобы добавить заголовок для типа содержимого image / jpeg, добавьте это в свою команду:

- H "Content-Type: image / jpeg"