CGI の古典的デバッグ(POST 編)
ここで GET でのテストについて書いたけど、今度は POST の話。
POST データはをあらかじめ post_data.txt とかいう名前で保存しておく。
$ cat post_data.txt hoge=%E3%81%A6%E3%81%99%E3%81%A8&fuga=%E3%81%A6%E3%81%99%E3%81%A8
ここは TamperIE なり LiveHTTPHeaders なんかで拾っておくと楽。
cat post_data.txt | env REQUEST_METHOD='POST' CONTENT_LENGTH=65 HTTP_REFERER='http://example.com/form.html' perl -d submit.cgi
こんな感じ。
CONTENT_LENGTH は `wc -c post_data.txt` とか書けるとよかったんだけど、vi で編集したときに末尾に改行が入っちゃって文字数がずれてしまうのであきらめた。ここを自動計算できないなら、いちいち別ファイルに保存しないで echo しちゃえばよかったかも。