Reputation: 8670
I am trying to modify a curl request that was captured with Google Chrome Dev Tools.
Here is what the command looks like
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#
is the name of the form and Form#Data
is the data I submitted in the forms.
How would I make this be a single line curl request I can just copy into my command line and have it do the same thing that my browser did?
Upvotes: 52
Views: 104524
Reputation: 925
For Linux and MacOS: Use the \
escape character:
curl "http://WEBSITE" -H "Host: WEBSITE" \
-H "Accept: text/html,application/xhtml+xml \
,application/xml;q=0.9,*/*;q=0.8"
For Windows: Use the ^
escape character:
curl "http://WEBSITE" -H "Host: WEBSITE" ^
-H "Accept: text/html,application/xhtml+xml ^
,application/xml;q=0.9,*/*;q=0.8"
Upvotes: 78
Reputation: 1179
If you are running Windows, I have found it easier to install Git and use Git Bash to run Curl. This was initially suggested in a separate article: https://stackoverflow.com/a/57567112/5636865.
Upvotes: 8
Reputation: 51
NOTE: watch out for the tendency to indent on multiple line commands, as it will embed spaces and screw up the curl command. the sed command replaces embedded spaces within the variables with the %20 string so that spaces can be used embedded in the strings you pass as variables
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'`"
Upvotes: 5