Home > Back-end >  Python 3 simple http server with GET functional
Python 3 simple http server with GET functional

Time:07-23

I can't find any python code for the equiavalent of

python -m http.server port --bind addr --directory dir

So I need basicaly working server class that prcoess at least GET requests. Most of the things I found on google either http server with some special needs or something like that, where you need to code response behaviour be yourself:

from http.server import BaseHTTPRequestHandler, HTTPServer

def run(server_class=HTTPServer, handler_class=BaseHTTPRequestHandler):
    server_address = ('', 8000)
    httpd = server_class(server_address, handler_class)
    httpd.serve_forever()

run()

All that I need is default working skeleton of python http server, where you can provide address, port and directory, and it would normally process GET reqeuests.

CodePudding user response:

You need to subclass the BaseHTTPRequestHandler to, well, handle the requests:

class HTTPRequestHandler(BaseHTTPRequestHandler):
    """HTTP request handler with additional properties and functions."""

     def do_GET(self):
        """handle GET requests."""
        # Do stuff.

CodePudding user response:

Why not use the requests library ?

import requests

#the required first parameter of the 'get' method is the 'url'(instead of get you can use any other http type, as needed):

r = requests.get('https://stackoverflow.com/questions/73089846/python-3-simple-http-get-functional')

#you can print many other things as well such as content, text and so on
print(r.status_code) 

Check the documentation https://requests.readthedocs.io/en/latest/

  • Related