Как отправить разрыв строки, используя curl? - PullRequest
0 голосов
/ 17 октября 2019

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

$ cat test.txt
foo
bar

curl -i -X POST -H "Content-Type:application/json" -u username:password  -d  '{ "ancestors": [ { "id": "65601" } ], "body": { "storage": { "value": "'"$(cat test.txt)"'", "representation": "storage" } }, "space": { "key": "TEST" }, "status": "current", "title": "Page1", "type": "page" }' 'http://localhost:8090/rest/api/content';

Вот как это выглядит, если смотреть в режиме отладки

curl -i -X POST -H "Content-Type:application/json" -u username:password  -d  '{ "ancestors": [ { "id": "65601" } ], "body": { "storage": { "value": "foo
bar", "representation": "storage" } }, "space": { "key": "TEST" }, "status": "current", "title": "Page1", "type": "page" }' 'http://localhost:8090/rest/api/content';

Я даже тестировал эту опцию --data-двоичный файл, он не работает.

Я хочу, чтобы содержимое файла (test.txt) отображалось как есть на странице слияния, т.е. оно должно сохранять новую строку как есть.

Это не сработало даже после ввода \ n, как показано ниже

"storage": { "value": "foo\nbar" }

Есть предложения, как этого добиться с помощью curl?

1 Ответ

1 голос
/ 17 октября 2019

--data-binary будет сохранять и передавать все пробельные символы, включая символы новой строки, в то время как обычная опция -d/--data не будет. Он не представит ни одного из них сам по себе, поэтому вам необходимо убедиться, что ваши данные включают их.

Также, пожалуйста, избегайте -X POST с -d, так как в лучшем случае это не нужно, в худшем случае вызывает проблемы.

verify

Если вы хотите убедиться, что ваш POST точно такой, каким вы хотите, я бы порекомендовал добавить --trace-ascii dump.txt в вашу командную строку, а затем проверить этот файл dump.txt послефакт и убедитесь, что тело было отправлено именно так, как вы хотели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...