Skip to content

Instantly share code, notes, and snippets.

@yuchen
Forked from subfuzion/curl.md
Last active February 3, 2021 03:10
Show Gist options
  • Save yuchen/e9a71e4ad3903606b3a87bfe7c9eee02 to your computer and use it in GitHub Desktop.
Save yuchen/e9a71e4ad3903606b3a87bfe7c9eee02 to your computer and use it in GitHub Desktop.

Revisions

  1. yuchen revised this gist Feb 3, 2021. No changes.
  2. yuchen revised this gist Feb 3, 2021. No changes.
  3. yuchen revised this gist Nov 25, 2020. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion curl.md
    Original file line number Diff line number Diff line change
    @@ -109,4 +109,6 @@ with a data file

    ### Upload file

    curl 'http://localhost/uploader.php' -F "userid=1" -F "filecomment=This is an image file" -F "image=@/home/user1/Desktop/test.jpg"
    curl -F "userid=1" -F "filecomment=This is an image file" -F "image=@/home/user1/Desktop/test.jpg" 'http://localhost/uploader.php'

    curl -i -X POST -H "Content-Type: multipart/form-data" -F "[email protected];userid=1234" http://mysuperserver/media/upload
  4. yuchen revised this gist Nov 25, 2020. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions curl.md
    Original file line number Diff line number Diff line change
    @@ -108,3 +108,5 @@ with a data file
    curl -d "@data.json" -X POST http://localhost:3000/data

    ### Upload file

    curl 'http://localhost/uploader.php' -F "userid=1" -F "filecomment=This is an image file" -F "image=@/home/user1/Desktop/test.jpg"
  5. yuchen revised this gist Nov 25, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion curl.md
    Original file line number Diff line number Diff line change
    @@ -107,4 +107,4 @@ with a data file

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


    ### Upload file
  6. @subfuzion subfuzion revised this gist Jun 12, 2016. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion curl.md
    Original file line number Diff line number Diff line change
    @@ -6,7 +6,7 @@
    `-b, --cookie <name=data>`
    Supply cookie with request. If no `=`, then specifies the cookie file to use (see `-c`).

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

    `-d, --data <data>`
  7. @subfuzion subfuzion revised this gist Jun 12, 2016. 1 changed file with 6 additions and 1 deletion.
    7 changes: 6 additions & 1 deletion curl.md
    Original file line number Diff line number Diff line change
    @@ -43,8 +43,13 @@
    `-s, --silent`
    Silent (quiet) mode. Use with `-S` to force it to show errors.

    `-v, verbose`
    `-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.
  8. @subfuzion subfuzion revised this gist Jun 12, 2016. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion curl.md
    Original file line number Diff line number Diff line change
    @@ -15,7 +15,7 @@
    `-f, --fail`
    Fail silently (don't output HTML error form if returned).

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

    `-H, --header <header>`
  9. @subfuzion subfuzion revised this gist Jun 12, 2016. 1 changed file with 54 additions and 0 deletions.
    54 changes: 54 additions & 0 deletions curl.md
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,57 @@
    ## 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, --cokkie-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 <file>. 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).

    `-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`
  10. @subfuzion subfuzion revised this gist May 13, 2016. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions curl.md
    Original file line number Diff line number Diff line change
    @@ -26,7 +26,7 @@ For sending data with POST and PUT requests, these are common `curl` options:

    ## Examples

    ##### POST application/x-www-form-urlencoded
    ### POST application/x-www-form-urlencoded

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

    @@ -40,7 +40,7 @@ with a data file

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

    ##### POST application/json
    ### POST application/json

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

  11. @subfuzion subfuzion revised this gist May 13, 2016. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion curl.md
    Original file line number Diff line number Diff line change
    @@ -8,7 +8,7 @@ Many APIs will accept both formats, so if you're using `curl` at the command lin

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

    ### curl usage
    ## curl usage

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

    @@ -23,6 +23,8 @@ For sending data with POST and PUT requests, these are common `curl` options:
    * 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

  12. @subfuzion subfuzion revised this gist May 13, 2016. 1 changed file with 18 additions and 2 deletions.
    20 changes: 18 additions & 2 deletions curl.md
    Original file line number Diff line number Diff line change
    @@ -2,12 +2,28 @@ When sending data via a POST or PUT request, two common formats (specified via t
    * `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 urlencoded format instead of json because
    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 urlencoded by default, so for json the `Content-Type` header must be explicitly set
    * 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`

    ##### POST application/x-www-form-urlencoded

    `application/x-www-form-urlencoded` is the default:
  13. @subfuzion subfuzion revised this gist May 13, 2016. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions curl.md
    Original file line number Diff line number Diff line change
    @@ -6,6 +6,7 @@ Many APIs will accept both formats, so if you're using `curl` at the command lin
    * the json format requires a bunch of extra quoting
    * curl will send 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.

    ##### POST application/x-www-form-urlencoded

  14. @subfuzion subfuzion revised this gist May 13, 2016. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion curl.md
    Original file line number Diff line number Diff line change
    @@ -2,7 +2,7 @@ When sending data via a POST or PUT request, two common formats (specified via t
    * `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 urlencoded format than json because
    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 urlencoded format instead of json because
    * the json format requires a bunch of extra quoting
    * curl will send urlencoded by default, so for json the `Content-Type` header must be explicitly set

  15. @subfuzion subfuzion revised this gist May 13, 2016. 1 changed file with 9 additions and 0 deletions.
    9 changes: 9 additions & 0 deletions curl.md
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,12 @@
    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 urlencoded format than json because
    * the json format requires a bunch of extra quoting
    * curl will send urlencoded by default, so for json the `Content-Type` header must be explicitly set


    ##### POST application/x-www-form-urlencoded

    `application/x-www-form-urlencoded` is the default:
  16. @tonypujals tonypujals revised this gist Feb 26, 2016. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions curl.md
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    ## POST application/x-www-form-urlencoded
    ##### POST application/x-www-form-urlencoded

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

    @@ -12,7 +12,7 @@ with a data file

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

    ## POST application/json
    ##### POST application/json

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

  17. @tonypujals tonypujals created this gist Feb 26, 2016.
    23 changes: 23 additions & 0 deletions curl.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,23 @@
    ## 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


    4 changes: 4 additions & 0 deletions data.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,4 @@
    {
    "key1":"value1",
    "key2":"value2"
    }
    1 change: 1 addition & 0 deletions data.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1 @@
    param1=value1&param2=value2
    11 changes: 11 additions & 0 deletions package.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,11 @@
    {
    "name": "postdemo",
    "version": "1.0.0",
    "scripts": {
    "start": "node server.js"
    },
    "dependencies": {
    "body-parser": "^1.15.0",
    "express": "^4.13.4"
    }
    }
    12 changes: 12 additions & 0 deletions server.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,12 @@
    var app = require('express')();
    var bodyParser = require('body-parser');

    app.use(bodyParser.json()); // for parsing application/json
    app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded

    app.post('/data', function (req, res) {
    console.log(req.body);
    res.end();
    });

    app.listen(3000);