Ответ 1
Используйте escape-символ \
для многострочных входов
curl "http://WEBSITE" -H "Host: WEBSITE"\
-H "Accept: text/html,application/xhtml+xml\
,application/xml;q=0.9,*/*;q=0.8"
Я пытаюсь изменить запрос 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
- это данные, которые я представил в формах.
Как я могу сделать это единственным запросом на завивки строки, который я могу просто скопировать в свою командную строку и сделать то же, что и мой браузер?
Используйте escape-символ \
для многострочных входов
curl "http://WEBSITE" -H "Host: WEBSITE"\
-H "Accept: text/html,application/xhtml+xml\
,application/xml;q=0.9,*/*;q=0.8"
ПРИМЕЧАНИЕ: следите за тенденцией отступа в многострочных командах, так как это вставит пробелы и обернется командой 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''"