概要
JSONデータがPOSTされたらそのままJSONデータを表示させるPythonスクリプトです。 POSTでデータを受け取る際にどういったデータが送信されてくるのか検証をおこなう際に便利でした。
リクエストを受け取るPythonスクリプト
#!/usr/bin/env python # -*- coding:utf-8 -*- import json from http.server import BaseHTTPRequestHandler from http.server import HTTPServer import signal signal.signal(signal.SIGINT, signal.SIG_DFL) class LogHandler(BaseHTTPRequestHandler): def do_POST(self): self.send_response(200) self.end_headers() length = int(self.headers['Content-Length']) data = json.loads(self.rfile.read(length).decode('utf-8')) print(json.dumps(data, indent=2)) if __name__ == '__main__': httpd = HTTPServer(('', 1234), LogHandler) httpd.serve_forever()
スクリプト実行
json-reciever.py
といった名前で以下のようにスクリプトを動かします。
python json-reciever.py
これで1234番ポートで待受け状態になります。
JSONデータをPOST
例として以下のJOSNデータを別ターミナルからPOSTしてみます。
curl -X POST \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{"user":{"first_name":"hoge","last_name":"test","email":"test@example.com","role":"admin"}}' \ http://127.0.0.1:1234/
表示結果
以下のように表示されどういったJSONデータがPOSTされてきたかが分かるようになります。
{ "user": { "first_name": "hoge", "last_name": "test", "email": "test@example.com", "role": "admin" } }