テスト用の CGI を簡単に立ち上げる方法

他社のサービスに遷移するテストなどが必要なことが何度かありました。

何か指定のサイトにパラメータを 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

1969年生まれ。大学卒業後から15年以上にわたり、通信、カードリーダ、セキュリティ業界においてソフトウェア開発に従事。その後、2012年5月に当社を設立。電力、交通、車載向けの組み込み系システム、旅行業界向けの WEB システム開発、音声合成システム、消防向けのシステム開発等に参画。
低コストかつシンプルで安定稼働するシステムの実現を目指し、アーキテクチャ設計に取り組んでいます。
会社情報と代表者守屋のプロフィール詳細