miauのブログ

はてなダイアリー「miauの避難所」をはてなブログに移行しました

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 なんかで拾っておくと楽。

で、perlデバッグ起動。

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 しちゃえばよかったかも。