Exception happened during processing of request from

18,196

Issue is with this self.wfile.write(message) line

from http.server import BaseHTTPRequestHandler, HTTPServer
class WebServerHandler(BaseHTTPRequestHandler):

def do_GET(self):
    try: 
        if self.path.endswith("/hi"):
            self.send_response(200)
            self.send_header('Content-type', 'text/html')
            self.end_headers()
            message = ""
            message += "<html><body>Hello!</body></html>"
            self.wfile.write(message.encode('utf-8'))
            print (message)
            return
    except IOError:
        self.send_error(404, 'File Not Found: %s' % self.path)


def main():
    try:
        port = 8080
        server = HTTPServer(('', port), WebServerHandler)
        print ("Web Server running on port %s" % port)

        server.serve_forever()
    except KeyboardInterrupt:
        print (" ^C entered, stopping web server....")
        server.socket.close()

if __name__ == '__main__':
    main()
Share:
18,196
Adrien Roussel
Author by

Adrien Roussel

Updated on June 05, 2022

Comments

  • Adrien Roussel
    Adrien Roussel almost 2 years

    here is my code I want to open a server on the localhost:8080.

    from http.server import BaseHTTPRequestHandler, HTTPServer
    class WebServerHandler(BaseHTTPRequestHandler):
    
        def do_GET(self):
            try: 
                if self.path.endswith("/hi"):
                    self.send_response(200)
                    self.send_header('Content-type', 'text/html')
                    self.end_headers()
                    message = ""
                    message += "<html><body>Hello!</body></html>"
                    self.wfile.write(message)
                    print (message)
                    return
            except IOError:
                self.send_error(404, 'File Not Found: %s' % self.path)
    
    
    def main():
        try:
            port = 8080
            server = HTTPServer(('', port), WebServerHandler)
            print ("Web Server running on port %s" % port)
    
            server.serve_forever()
        except KeyboardInterrupt:
            print (" ^C entered, stopping web server....")
            server.socket.close()
    
    if __name__ == '__main__':
        main()
    

    And when i'm open the server i'm supposed to get a white web page with the word "Hello!" wrote on it.

    But when i open the page i have a white page and on my terminal i have this :

    Exception happened during processing of request from ('10.0.2.2',49701)
    Traceback (most recent call last):
      File "/usr/lib/python3.5/socketserver.py", line 313, in 
    _handle_request_noblock
        self.process_request(request, client_address)
      File "/usr/lib/python3.5/socketserver.py", line 341, in 
    process_request
        self.finish_request(request, client_address)
      File "/usr/lib/python3.5/socketserver.py", line 354, in 
    finish_request
        self.RequestHandlerClass(request, client_address, self)
      File "/usr/lib/python3.5/socketserver.py", line 681, in __init__
        self.handle()
      File "/usr/lib/python3.5/http/server.py", line 422, in handle
        self.handle_one_request()
      File "/usr/lib/python3.5/http/server.py", line 410, in 
    handle_one_request
        method()
      File "webserver.py", line 14, in do_GET
        self.wfile.write(message)
      File "/usr/lib/python3.5/socket.py", line 593, in write
        return self._sock.send(b)
    TypeError: a bytes-like object is required, not 'str'