У меня есть следующая проблема.BaseHttpServer вернул код 404 с кириллицей
Я использовал BaseHttpServer.
class ReqHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def __init__(self, request, client_address, server):
BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, request, client_address, server)
def do_GET(self):
self.performReq(self.path.decode('utf-8'))
def performReq (self, req):
curDir = os.getcwd()
fname = curDir + '/' + self.path[1:]
try:
self.send_response(200,"Ok!")
ext = os.path.splitext(self.path)[1]
self.send_header('Content', 'text/xml; charset=UTF-8')
self.end_headers()
f = open(fname, 'rb')
for l in f:
self.wfile.write(l)
f.close()
print 'file '+fname+" Ok"
except IOError:
print 'no file '+fname
self.send_error(404)
if __name__=='__main__':
server = BaseHTTPServer.HTTPServer(('',8081), ReqHandler)
print('server ok!')
server.serve_forever()
Если путь к файлу содержит кириллицу.
http://localhost:8081/ТРА/Понедельник/Пн.doc)
Я получаю код 404.
Спасибо.
Как 'fname' установить? Изменяется ли параметр 'fname' с помощью пути запроса? –
Я был обновлен. Добавить браузер скриншотов и консоль, а также добавить fname в код. –
Можем ли мы увидеть больше кода? Как запустить сервер? Каков весь класс обработчиков? –