BaseHTTPServer 프로그램을 만들려고합니다. 필자는 Python 3.3 또는 3.2를 선호합니다. 나는 가져올 무엇인지에 대해 이해하기 어려운 문서를 찾을에서 가져 오기를 변경 시도 :Python 3.x BaseHTTPServer 또는 http.server
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
질문 : Python3.x와 상자 밖으로 작동하거나 내가 뭔가 잘못하고있는 중이 야 그 BaseHTTPServer의 버전이 아니면 http.server?
이다 나는 파이썬 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
슬프게도, 파이썬 3 문서의 규범 나는 이것이 큰 실수라고 생각 파이썬 2. 변경 사항을주의하는 것이 아니다. –