5

Я хочу сделать HTTP POST содержимого (в виде строки) локального файла, расположенного по path/to/my-file.txt к конечной точке URL-адреса по адресу http://example.com/ .

Например, я мог бы сделать следующее:

  1. Извлеките содержимое файла my-file.txt в виде строки.
  2. URL кодирует строку.
  3. Сохраните закодированную строку как переменную с именем foo .

Затем сделайте что-то вроде этого:

curl -d "data=foo" http://example.com/

(На самом деле мне не нужна переменная foo . Это просто удобный способ описать мой вопрос.)

Какие команды мне нужно будет выполнить это? Нужно ли писать сценарий оболочки? Если так, как это могло бы выглядеть?

2 ответа2

8

Согласно последнему разделу -d в man curl:

Если вы начинаете данные с буквы @, остальное должно быть именем файла для чтения данных, или - если вы хотите, чтобы curl считывал данные из stdin. Несколько файлов также могут быть указаны. Публикация данных из файла с именем 'foobar', таким образом, будет выполняться с --data @foobar. Когда --data сказано читать из файла, подобного этому, возврат каретки и перевод строки будут удалены.

То есть вам не нужно делать ничего необычного, просто добавьте к имени файла имя @.

4

Чтобы быть ясно понятным, принятый ответ предлагает:

curl -d "data=@path/to/my-file.txt" http://example.com/

Справочное руководство находится здесь. (Найдите на странице -d, --data <data>).

Также см. Этот ответ SE и этот также для нескольких частей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .