] @sddlmZmZddlmZddlZddlZddlm Z ddl m Z dZ ddd d gZ d e Ze d ejjdZed eZGddde ZGdddeZGdddeZdd Zeedd ZedkreddeZejjZededdeddddlZejdej ej!dS))BaseHTTPRequestHandler HTTPServer)BufferedWriterN) SimpleHandler)python_implementationz0.2 WSGIServerWSGIRequestHandlerdemo_app make_serverz WSGIServer// c@s"eZdZeZddZdS) ServerHandlerc CsBz-|jj|jjddd|jWdtj|XdS)Nr r)request_handlerZ log_requeststatussplitZ bytes_sentrclose)selfr2/opt/alt/python35/lib64/python3.5/simple_server.pyr!s $zServerHandler.closeN)__name__ __module__ __qualname__software_versionZserver_softwarerrrrrr s r c@sFeZdZdZddZddZddZdd ZdS) rNcCstj||jdS)N)r server_bind setup_environ)rrrrr1s zWSGIServer.server_bindcCsYi}|_|j|deZdZdeZddZddZddZdS) rz WSGIServer/cCs|jjj}|j|d<|j|d<|j|dr;rrunr)r#detach)rstdouthandlerrrrhandlets      ! zWSGIRequestHandler.handleN)rrr __version__r,r;r>rErrrrrHs   % cCsddlm}|}tdd|td|t|j}x0|D](\}}t|dt|d|qOW|dd g|jjd gS) Nr)StringIOz Hello world!file=z200 OK Content-Typetext/plain; charset=utf-8zutf-8)rJrK)iorGprintsortedr3reprgetvalueencode)environZstart_responserGrChr9r:rrrr s   cCs&|||f|}|j||S)N)r$)r7portZappZ server_classZ handler_classr)rrrr s __main__ri@zServing HTTP onrTrz...zhttp://localhost:8000/xyz?abc)"Z http.serverrrrLrr<Z urllib.parser/Zwsgiref.handlersrplatformrrF__all__r,versionr sys_versionrr rrr r rZhttpdsocket getsocknamesarMZ webbrowseropenZhandle_requestZ server_closerrrr s.   H