Написать простой прокси-сервер с Python, просто странные символы в браузере

Я пытаюсь написать простой Http-прокси с Python. Это мой код:

import BaseHTTPServer
import urllib2
import threading
HOST_NAME="localhost"
PORT_NUMBER=9090

class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):

    def handle_get_async(self):
        opener =  urllib2.build_opener()
        #opener.addheaders = self.headers.items()
        response = opener.open(self.path)
        response_content=response.read()
        response.close()
        self.send_response(200)
        self.send_header("Content-type",response.info().type)
        self.end_headers()
        self.wfile.write(response_content)

    def handle_head_async(s):
        s.send_responde(200)
        s.send_Header("Content-type","text/html")
        s.end_headers()

    def do_HEAD(s):
        thread = threading.Thread(target=self.handle_head_async)
        thread.start()
        thread.join()

    def do_GET(self):
        thread = threading.Thread(target=self.handle_get_async)
        thread.start()
        thread.join()


if __name__ == '__main__':
    server_class = BaseHTTPServer.HTTPServer
    httpd = server_class((HOST_NAME, PORT_NUMBER), RequestHandler)
    httpd.serve_forever()

Так что все работает нормально, но когда я использую opener.addheaders = self.headers.items(), чтобы скопировать заголовки, отправленные браузером, и скопировать их в новый запрос, я просто получаю в браузере только странные символы, например:

Ô½Yo # I¶ & O ^¿Ao ":¯")Ju-PJn '(q'ZCQ^Nw#ÝEßä)**€z`€ ÆI €™ - <žy¨Ûfè-Æ4ptþ ‰ ê · ÂEãöüŒ9ÇÌÝé \ œŠHeõB $ Ý -sŽ} fvì~Ùq³Ÿ¾ "uªƒÛnS]; þÍOøÅi ¢ 1> âeÂsª| ‰MSAs объявлением &:! Îo~ƒÃcb" Ес éÄ9Im‡¸G¼çŽEž;8þÉ'lÕrGž ¹ªipÄ~žhž£ I"ÃÀáŽO|½3mNæTƒw¥÷ò‡#>?©£™jÈælß&žj“<ø <ßý¸¶óþïêÆôï> ì w?Í! ÑñÈO? ŸøÇŸ‡;ðâ?…¢|äÅñÉR-"¸æ„ü¾|óðỔ:ñHEÎ[c~×G˜" " ο "³®Ñq34aAÉ?8 ° х? 8 ä öHö~?vÙ$v"9–~O <{”?ø? S ‡ Ä

У кого-нибудь есть идея в чем проблема?

0 ответов

Другие вопросы по тегам