Python 3.x BaseHTTPServer или http.serverPython

Программы на Python
Anonymous
Python 3.x BaseHTTPServer или http.server

Сообщение Anonymous »

Я пытаюсь создать программу BaseHTTPServer. Я предпочитаю использовать для этого Python 3.3 или 3.2. Мне трудно понять в документе, что импортировать, но я попробовал изменить импорт:

from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer


кому:

from http.server import BaseHTTPRequestHandler,HTTPServer


и затем импорт работает, программа запускается и ожидает запроса GET. НО при поступлении запроса возникает исключение:

File "C:\Python33\lib\socket.py", line 317, in write return self._sock.send(b)
TypeError: 'str' does not support the buffer interface


Вопрос: существует ли версия BaseHTTPServer или http.server, которая сразу работает с Python3.x, или я делаю что-то неправильно?

Это «моя» программа, которую я пытаюсь запустить на Python 3.3 и 3.2:

#!/usr/bin/python
# from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer
from http.server import BaseHTTPRequestHandler,HTTPServer

PORT_NUMBER = 8080

# This class will handle any incoming request from
# a browser
class myHandler(BaseHTTPRequestHandler):

# Handler for the GET requests
def do_GET(self):
print ('Get request received')
self.send_response(200)
self.send_header('Content-type','text/html')
self.end_headers()
# Send the html message
self.wfile.write("Hello World !")
return

try:
# Create a web server and define the handler to manage the
# incoming request
server = HTTPServer(('', PORT_NUMBER), myHandler)
print ('Started httpserver on port ' , PORT_NUMBER)

# Wait forever for incoming http requests
server.serve_forever()

except KeyboardInterrupt:
print ('^C received, shutting down the web server')
server.socket.close()


Программа частично работает на Python2.7, но выдает это исключение после 2-8 запросов:

error: [Errno 10054] An existing connection was forcibly closed by the remote host


Подробнее здесь: https://stackoverflow.com/questions/232 ... ttp-server

Вернуться в «Python»