Skip to content

Instantly share code, notes, and snippets.

@davidrios
Last active June 7, 2016 03:00
Show Gist options
  • Save davidrios/fa2dfaefaf459fdcd41e97a30926c12c to your computer and use it in GitHub Desktop.
Save davidrios/fa2dfaefaf459fdcd41e97a30926c12c to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3
import json
import sqlite3
from http.server import HTTPServer, BaseHTTPRequestHandler
conn = sqlite3.connect('requests.db')
cur = conn.cursor()
cur.execute('''CREATE TABLE IF NOT EXISTS requests (id integer primary key, datetime text, method text, headers text, body blob)''')
class StoringHandler(BaseHTTPRequestHandler):
def _store_request(self):
headers = json.dumps(list(self.headers.items()))
body = b''
if 'content-length' in self.headers:
body = self.rfile.read(int(self.headers['content-length']))
cur.execute('insert into requests values (null, ?, ?, ?, ?)',
[self.date_time_string(), self.command, headers, body])
conn.commit()
self.send_response(200, 'Ok')
self.end_headers()
do_GET = _store_request
do_POST = _store_request
def run(server_class=HTTPServer,
handler_class=BaseHTTPRequestHandler):
server_address = ('', 8000)
httpd = server_class(server_address, handler_class)
httpd.serve_forever()
if __name__ == '__main__':
run(handler_class=StoringHandler)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment