curlコマンドからのRESTなリクエストを送り方

メモ。

# GET
$ curl http://localhost:3000/users.xml
$ curl http://localhost:3000/users/3.xml

# POST
$ curl http://localhost:3000/users -X POST -d "user[name]=postman" -d "user[age]=19"

# PUT
$ curl http://localhost:3000/users/4 -X PUT -d "user[name]=putman" -d "user[age]=20" 

# DELETE
$ curl http://localhost:3000/users/5 -X DELETE

POSTやPUTのデータにXMLを渡すにはどうしたらいいんだっけ?昔やった記憶があるんだけどなぁ。

追記:XMLデータの渡し方

http://snippets.dzone.com/posts/show/181

によると、ヘッダに「Content-type: text/xml」をつけてあげればいけるみたい。

$ curl -X POST -H 'Content-type: text/xml' -d '<user><name>xmlman</name><age>10</age></user>' http://localhost:3000/users
# 「-d @-」をつけることでstdinから渡すこともできる
$ echo '<user><name>xmlman</name><age>10</age></user>' | curl -X POST -H 'Content-type: text/xml' -d @- http://localhost:3000/users