티스토리 뷰

공부합시다

curl POST 예제

IamMH 2020. 2. 7. 14:02

출처: https://gist.github.com/subfuzion/08c5d85437d5d4f00e58

Common Options

`-#, --progress-bar`  
Make curl display a simple progress bar instead of the more informational standard meter.

`-b, --cookie <name=data>`  
Supply cookie with request. If no `=`, then specifies the cookie file to use (see `-c`).

`-c, --cookie-jar <file name>`  
File to save response cookies to.

`-d, --data <data>`  
Send specified data in POST request. Details provided below.

`-f, --fail`  
Fail silently (don't output HTML error form if returned).

`-F, --form <name=content>`  
Submit form data.

`-H, --header <header>`  
Headers to supply with request.

`-i, --include`  
Include HTTP headers in the output.

`-I, --head`  
Fetch headers only.

`-k, --insecure`  
Allow insecure connections to succeed.

`-L, --location`  
Follow redirects.

`-o, --output <file>`  
Write output to . Can use `--create-dirs` in conjunction with this to create any directories  
specified in the `-o` path.

`-O, --remote-name`  
Write output to file named like the remote file (only writes to current directory).

`-s, --silent`  
Silent (quiet) mode. Use with `-S` to force it to show errors.

`-v, --verbose`  
Provide more information (useful for debugging).

`-w, --write-out <format>`  
Make curl display information on stdout after a completed transfer. See man page for more details on  
available variables. Convenient way to force curl to append a newline to output: `-w "\n"` (can add  
to `~/.curlrc`).

`-X, --request`  
The request method to use.

POST

When sending data via a POST or PUT request, two common formats (specified via the Content-Type header) are:

  • application/json
  • application/x-www-form-urlencoded

Many APIs will accept both formats, so if you're using curl at the command line, it can be a bit easier to use the form urlencoded format instead of json because

  • the json format requires a bunch of extra quoting
  • curl will send form urlencoded by default, so for json the Content-Type header must be explicitly set

This gist provides examples for using both formats, including how to use sample data files in either format with your curl requests.

curl usage

For sending data with POST and PUT requests, these are common curl options:

  • request type

    • -X POST
    • -X PUT
  • content type header

    • -H "Content-Type: application/x-www-form-urlencoded"
    • -H "Content-Type: application/json"
  • data

    • form urlencoded: -d "param1=value1&param2=value2" or -d @data.txt
    • json: -d '{"key1":"value1", "key2":"value2"}' or -d @data.json

Examples

POST application/x-www-form-urlencoded

application/x-www-form-urlencoded is the default:

curl -d "param1=value1&param2=value2" -X POST http://localhost:3000/data

explicit:

curl -d "param1=value1&param2=value2" -H "Content-Type: application/x-www-form-urlencoded" -X POST http://localhost:3000/data

with a data file

curl -d "@data.txt" -X POST http://localhost:3000/data

POST application/json

curl -d '{"key1":"value1", "key2":"value2"}' -H "Content-Type: application/json" -X POST http://localhost:3000/data

with a data file

curl -d "@data.json" -X POST http://localhost:3000/data

'공부합시다' 카테고리의 다른 글

next.js HOST, PORT 설정하기  (0) 2020.09.09
HTTPie  (0) 2020.06.25
REST API 이렇게 써도 되나?  (0) 2019.06.14
윈도우 업데이트가 안되요 문제해결  (0) 2018.01.17
atom 사용하기  (0) 2017.09.28
댓글