テスト用の CGI を簡単に立ち上げる方法
2019/08/21 - moriya - ~1 Minute
他社のサービスに遷移するテストなどが必要なことが何度かあった。
何か指定のサイトにパラメータを POST してそのサイトのサービスに遷移するといったものなのだが、遷移先のサイトを作ることなどできないので、せめて POST したパラメータを見たいということはないだろうか。
以下のような cgi で、表示することができるだろう。
#!/usr/bin/env python3
import cgi
import os
print('Content-type: text/plain')
print('')
if 'HTTP_REFERER' in os.environ:
print("referer:", os.environ['HTTP_REFERER'])
print "method:", os.environ['REQUEST_METHOD']
print "query string:", os.environ['QUERY_STRING']
form = cgi.FieldStorage()
for k in form.keys():
print "key/value:", k, '/', form.getvalue(k)
さて、この cgi を web サーバに置いてもよいのだが、テストなので web サーバを立てるのもめんどうだ・・・という時に、何か方法はないのだろうか。
例えば、test というディレクトリを作って、その下に cgi-bin ディクレトリを作る。この cgi-bin ディレクトリに、先程のスクリプトを post-test.py などとして置く。(拡張子を .py にするのは、windows server で動かすためだが。)
その上で、test ディレクトリで、以下を実行する。
python3 -m http.server 8000 --cgi
以下のようにして確認できるだろう。
curl -s -X POST -F hoge=hogehoge http://localhost:8000/cgi-bin/post-test.py