f3: ddlmZmZddlZddlZddlmZddlm Z dZ gdZ de zZ e dzej dzZe d zezZGd d eZGd d eZGddeZdZeefdZedkredde5ZejZededdeddddlZejdeddddS#1swxYwYdSdS))BaseHTTPRequestHandler HTTPServerN) SimpleHandler)python_implementationz0.2) WSGIServerWSGIRequestHandlerdemo_app make_server WSGIServer// ceZdZeZdZdS) ServerHandlerc |j|jddd|jt j|dS#t j|wxYw)Nr r)request_handler log_requeststatussplit bytes_sentrcloseselfs C !!"233  +$*C !L&&(( # #DAqiiC  &&((AAGGII!CxxqyCGAI#a%'!"GAI r!ctjSr$)sysstderrrs r get_stderrzWSGIRequestHandler.get_stderrps zr!c |jd|_t|jdkr,d|_d|_d|_|ddS|sdSt|j|j | | d}||_ ||jdS)Niir+iF) multithread)rfilereadlineraw_requestlinelen requestlinerJrL send_error parse_requestrwfilercr_rrunrHr7)rhandlers rhandlezWSGIRequestHandler.handless*#z22599 t# $ $u , ,!D #%D DL OOC F!!##  F J DOO$5$5t7G7G7I7I   #' DK''))*****r!N)rrr __version__rKr_rcrpr r!rrrGsL"[0N###J+++++r!rc`ddlm}|}td|t|t|}|D]%\}}t|dt ||&|ddg|dgS) Nr)StringIOz Hello world!)file=z200 OK)z Content-Typeztext/plain; charset=utf-8zutf-8)iorsprintsortedrVreprgetvalueencode)environstart_responsersstdouthr]r^s rr r s XZZF .v&&&& vw}}A**! aDGG&)))))N8JKLLL OO   $ $W - - ..r!cN |||f|}|||Sr$)r9)r[portapp server_class handler_classrHs rr r s4L \4, 6 6F NN3 Mr!__main__r+i@zServing HTTP onrrz...zhttp://localhost:8000/xyz?abc) http.serverrrra urllib.parserNwsgiref.handlersrplatformrrq__all__rKversionr sys_versionrrrrr r rhttpdsocket getsocknamesarw webbrowseropenhandle_requestr r!rrsN ;::::::: ************ I I I,##%%+ck.?.?.A.A!.DD !C'+5 & & & & &M & & &'''''''':?+?+?+?+?+/?+?+?+F / / /#-