みんな大好きcURL。
最近、下位10%を弾くテストなんて話が話題になりましたが、アレでも使える話です。
ログイン
curl -c cookie.txt -d "user=kaboom" -d "pass=password" "http://example.com/login" curl -b cookie.txt "http://exapmle.com/admin/get_data"
1行目でログイン。デベロッパーツール等を用いて実際にログインするときのIDとパスワードのパラメータ名と form の POST 先 URL を調べ、-d オプションとURLを適当にして実行。ログインに成功したら、その時入手した cookie が cookie.txt に保存する。
2行目でデータ取得。さっき入手したばかりの cookie を手みやげにする。
データ投入
RESTfulなサイトを作り、そこにデータを放り投げる場合を考えます。
たとえば以下のようなクエリを受け付けるURIがあったとします。
# POST /tasks/id.:format task = Task.create( { :name => params[:name], :value => params[:value] } )
この場合、以下のようなrubyスクリプトを叩いてあげれば複数のデータの挿入をする事が出来ます。
def push_sensing_data url = "http://localhost:3000/mpw/tasks.xml" sensing = rand(100) + 10 system "curl -X POST -d 'name=01' -d 'value=#{sensing}' #{url}" return end 15.times do push_sensing_data end
curl -Xは、HTTP のリクエストメソッドを引数としてとります。
今回はデータ投稿なのでpost。
やった事はありませんが、deleteもいけるみたいです。