Команда Multiline curl

Я пытаюсь изменить запрос curl, который был захвачен с помощью инструментов Google Chrome Dev.

Вот что выглядит команда

curl "http://WEBSITE" -H "Host: WEBSITE" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" -H "Accept-Language: en-US,en;q=0.5" --compressed -H "Content-Type: multipart/form-data; boundary=---------------------------1184875127259" --data-binary "-----------------------------1184875127259"^

"Content-Disposition: form-data; name=""FORM1"""^

"FORM1DATA"^
"-----------------------------1184875127259"^

"Content-Disposition: form-data; name=""FORM2"""^

"FORM2DATA"^
"-----------------------------1184875127259"^

"Content-Disposition: form-data; name=""FORM3"""^

"FORM3DATA"^
"-----------------------------1184875127259"^

"Content-Disposition: form-data; name=""embed"""^

"true"^
"---------------------------1184875127259--"^
""

Form# - это имя формы, а Form#Data - это данные, которые я представил в формах.

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

Ответ 1

Используйте escape-символ \ для многострочных входов

curl "http://WEBSITE" -H "Host: WEBSITE"\
-H "Accept: text/html,application/xhtml+xml\
,application/xml;q=0.9,*/*;q=0.8" 

Ответ 2

ПРИМЕЧАНИЕ: следите за тенденцией отступа в многострочных командах, так как это вставит пробелы и обернется командой curl. команда sed заменяет встроенные пробелы в переменных на строку %20, чтобы можно было использовать пробелы, встроенные в строки, которые вы передаете в качестве переменных

messageout="The rain in Spain stays mainly in the plains"
summaryout="This is a test record"
alertnameout="Test Alert"


curl -v -silent request POST "URL.com?\
summary='echo $summaryout | sed -e 's/ /%20/g''&\
alertname='echo $alertnameout | sed -e 's/ /%20/g''&\
message='echo $messageout | sed -e 's/ /%20/g''"