답변:
필드 포함 :
curl --data "param1=value1¶m2=value2" https://example.com/resource.cgi
필드가 개별적으로 지정된 경우 :
curl --data "param1=value1" --data "param2=value2" https://example.com/resource.cgi
멀티 파트 :
curl --form "fileupload=@my-file.txt" https://example.com/resource.cgi
필드와 파일 이름이있는 멀티 파트 :
curl --form "fileupload=@my-file.txt;filename=desired-filename.txt" --form param1=value1 --form param2=value2 https://example.com/resource.cgi
데이터가없는 경우 :
curl --data '' https://example.com/resource.cgi
curl -X POST https://example.com/resource.cgi
curl --request POST https://example.com/resource.cgi
자세한 내용은 cURL 매뉴얼을 참조하십시오 . 웹 브라우저를 모방에 컬 튜토리얼 도움이됩니다.
libcurl을 사용 curl_formadd()
하면 일반적인 방법으로 양식을 제출하기 전에 함수를 사용하여 양식을 작성하십시오. 자세한 내용은 libcurl 설명서 를 참조하십시오.
큰 파일의 경우 업로드 진행률을 표시하는 매개 변수를 추가하십시오.
curl --tr-encoding -X POST -v -# -o output -T filename.dat \
http://example.com/resource.cgi
은 -o output
그렇지 않으면 진행 표시 줄이 표시되지 않습니다 필요합니다.
--data-urlencode
(대시 없음), 최신 버전 이상
With Fields
,시와 Multipart
때 Without Data
?
--data
사용할 수 있습니다 -d
.
XML이 포함 된 RESTful HTTP POST의 경우 :
curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:text/xml"
또는 JSON의 경우 다음을 사용하십시오.
curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:application/json"
이름이 지정된 파일의 내용을 읽고 filename.txt
사후 요청으로 보냅니다.
curl -X POST
HTTP POST 요청을 암시하고 -d
매개 변수 (long version :) --data
는 curl이 다음에 오는 것이 POST 매개 변수임을 말하고 @filename
파일의 내용을 매개 변수로 지정합니다 filename
. 이 방법은 Twitter, Facebook, Ruby on Rails를 포함한 다양한 웹 서비스 및 CouchDB와 같은 데이터베이스의 HTTP API에서 찾을 수있는 RESTful HTTP API와 가장 잘 작동합니다. REST는 Representational State Transfer
-X POST
의해 암시 된 이후로 당신이 떠날 수 있다고 생각합니다 -d
.
curl -d "name=Rafael%20Sagula&phone=3320780" http://www.where.com/guest.cgi
Curl Example Manual 에있는 예제 입니다.
위의 방법으로 문제가 해결되지 않으면 앰퍼샌드에 % 26을 사용하십시오.
curl -d "name=Rafael%20Sagula%26phone=3320780" http://www.where.com/guest.cgi
사이트에 로그인하려면 다음을 수행하십시오.
curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login
curl -L -b headers http://localhost/
첫 번째 요청은 세션 쿠키 (성공적으로 로그인하면 제공됨)를 "헤더"파일에 저장합니다. 이제부터는 쿠키를 사용하여 브라우저로 로그인 한 후 일반적으로 액세스하는 웹 사이트의 모든 부분에 대해 귀하를 인증 할 수 있습니다.
curl -v --data-ascii var=value http://example.com
더 많은 옵션이 있으며 자세한 내용을 확인 curl --help
하십시오.
게으른 경우 Google 크롬에서 모든 작업을 수행 할 수 있습니다.
Chrome은 모든 요청 데이터를 cURL 구문으로 복사합니다.
크롬 사용 --data 'param1=hello¶m2=world'
하면 단일 사용하여 읽기 쉽게 만들 수있는 -d
또는 -F
따라 당 매개 변수를 POST의 유형 당신이 중 하나가 될 수있는, 보낼 요청 application/x-www-form-urlencoded
이나 multipart/form-data
따라.
이 파일은 다음과 같이 POST됩니다 application/x-www-form-urlencoded
( 파일 업로드가 포함되지 않은 대부분의 양식에 사용됨 ).
curl http://httpbin.org/post \
-H "User-Agent: Mozilla/2.2" \
-d param1=hello \
-d name=dinsdale
A에 대한 multipart/form-data
POST 사용 -F
( 일반적으로 파일 업로드를 포함, 또는 양식에 사용되는 필드의 순서가 중요하거나 같은 이름의 여러 필드가 요구되는 경우 경우 ) :
curl http://httpbin.org/post \
-H "User-Agent: Mozilla/2.2" \
-F param1=hello \
-F name=dinsdale \
-F name=piranha
User-Agent
헤더는 일반적으로 필요하지 않습니다,하지만 난 단지의 경우에 그것을 던져했습니다. 다음 ~/.curlrc
을 포함 하는 파일을 작성하여 모든 요청에 대해 사용자 에이전트를 설정하지 않아도됩니다.User-Agent: "Mozilla/2.2"
curl -d "param1=value1¶m2=value2" -X POST http://localhost:3000/data