cURL - POSTリクエストの例

cURL – POSTリクエストの例

cURL logo

自己参照のためのいくつかのcURLのPOSTリクエストの例。

1. 通常のPOST

1.1 To POST without data.

$ curl -X POST http://localhost:8080/api/login/

1.2 To POST with data.

$ curl -d "username=example&password=abc" http://localhost:8080/api/login/

1.3 Spring REST to accept normal POST data.

    @PostMapping("/api/login")
    public ResponseEntity login(@RequestParam("username") String username,
                                    @RequestParam("password") String password) {
        //...
    }

    @PostMapping("/api/login")
    public ResponseEntity login(@ModelAttribute Login login) {
        //...
    }

2. POST +マルチパート

ファイルでPOSTするには、この-F file=@"path/to/data.txt"を追加します

2.1 Upload a file

$ curl -F file=@"path/to/data.txt" http://localhost:8080/api/upload/

2.2 Upload multiple files, with extra fields :

$ curl -F extraField="abc" -F files=@"path/to/data.txt" -F files=@"path/to/data2.txt"  http://localhost:8080/api/upload/multi/

2.3 Spring REST to accept POST Multipart data.

    @PostMapping("/api/upload")
    public ResponseEntity uploadFile(
            @RequestParam("file") MultipartFile uploadfile) {
        //...
    }

    @PostMapping("/api/upload/multi")
    public ResponseEntity uploadFiles(
            @RequestParam("extraField") String extraField,
            @RequestParam("files") MultipartFile[] uploadfiles) {
        //...
    }

    @PostMapping("/api/upload/multi2")
    public ResponseEntity uploadFiles2(
            @ModelAttribute UploadModel model) {
        //...
    }

3. POST + JSON

JSONデータでPOSTするには、この-H "Content-Type: application/json"を追加します

3.1 On Windows, escape the double quotes

c:\> curl -H "Content-Type: application/json" -X POST -d {\"username\":\"example\",\"password\":\"abc\"} http://localhost:8080/api/login/

3.2 For *nix or Mac OSX, add a single quote

$ curl -H "Content-Type: application/json" -X POST -d '{"username":"example","password":"abc"}' http://localhost:8080/api/login/

3.3 Spring REST to accept POST JSON data.

    @PostMapping("/api/login")
    public ResponseEntity login(@RequestBody Login login) {
        //..
    }