{}".format(post_body)) def do_PUT(self): self.do_POST() host = '' port = 80 HTTPServer((host, port), HandleRequests).serve_forever()"> {}".format(post_body)) def do_PUT(self): self.do_POST() host = '' port = 80 HTTPServer((host, port), HandleRequests).serve_forever()"> {}".format(post_body)) def do_PUT(self): self.do_POST() host = '' port = 80 HTTPServer((host, port), HandleRequests).serve_forever()">
# from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer # python2
from http.server import BaseHTTPRequestHandler, HTTPServer # python3
class HandleRequests(BaseHTTPRequestHandler):
    def _set_headers(self):
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()

    def do_GET(self):
        self._set_headers()
        self.wfile.write("received get request")
        
    def do_POST(self):
        '''Reads post request body'''
        self._set_headers()
        content_len = int(self.headers.getheader('content-length', 0))
        post_body = self.rfile.read(content_len)
        self.wfile.write("received post request:<br>{}".format(post_body))

    def do_PUT(self):
        self.do_POST()

host = ''
port = 80
HTTPServer((host, port), HandleRequests).serve_forever()

Example output using curl:

$ curl <http://localhost/>
received get request%                                                                                                                                                                                       

$ curl -X POST <http://localhost/>
received post request:<br>%                                                                                                                                                                                 

$ curl -X PUT <http://localhost/>
received post request:<br>%                                                                                                                                                                                 

$ echo 'hello world' | curl --data-binary @- <http://localhost/>
received post request:<br>hello world