Skip to content

Instantly share code, notes, and snippets.

@huyng
Created February 7, 2011 17:57
Show Gist options
  • Save huyng/814831 to your computer and use it in GitHub Desktop.
Save huyng/814831 to your computer and use it in GitHub Desktop.
A simple echo server to inspect http web requests
#!/usr/bin/env python
# Reflects the requests from HTTP methods GET, POST, PUT, and DELETE
# Written by Nathan Hamiel (2010)
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
from optparse import OptionParser
class RequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
request_path = self.path
print("\n----- Request Start ----->\n")
print(request_path)
print(self.headers)
print("<----- Request End -----\n")
self.send_response(200)
self.send_header("Set-Cookie", "foo=bar")
def do_POST(self):
request_path = self.path
print("\n----- Request Start ----->\n")
print(request_path)
request_headers = self.headers
content_length = request_headers.getheaders('content-length')
length = int(content_length[0]) if content_length else 0
print(request_headers)
print(self.rfile.read(length))
print("<----- Request End -----\n")
self.send_response(200)
do_PUT = do_POST
do_DELETE = do_GET
def main():
port = 8080
print('Listening on localhost:%s' % port)
server = HTTPServer(('', port), RequestHandler)
server.serve_forever()
if __name__ == "__main__":
parser = OptionParser()
parser.usage = ("Creates an http-server that will echo out any GET or POST parameters\n"
"Run:\n\n"
" reflect")
(options, args) = parser.parse_args()
main()
@rangent
Copy link

rangent commented Mar 5, 2019

Thank you so much for providing this solution! Saved me what was likely an hour at work to figure out how to do this!

@weiqiang333
Copy link

👍

@shadiakiki1986
Copy link

shadiakiki1986 commented Dec 19, 2019

I've found the below alternatives to be of great use

@petersont
Copy link

Also saved me a lot of time, thanks for posting : )

@huyng
Copy link
Author

huyng commented Jan 23, 2020

Haha, no problem. What are you guys using this for? I posted this thing years ago and forgot about it ...

@nirajchandak
Copy link

I've found the below alternatives to be of great use

👍🏻

@Huweicai
Copy link

I've found the below alternatives to be of great use

Thanks~ webhook.site is pretty useful~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment