simple http server in python

CLIENT
-------------------------------------------------------------------------------------------
#-*- coding:euc-kr -*-
import httplib, urllib
import sys

def conn(msg):
    params = urllib.urlencode({'msg':msg})
    headers = {"Content-type": "application/x-www-form-urlencoded",
                "Accept": "text/xml"}
    conn = httplib.HTTPConnection('127.0.0.1','10001')
    conn.request("GET", '/', params, headers)
    rsp = conn.getresponse()
    print rsp.read()
    print 'END'

if __name__ == '__main__':
    if len(sys.argv) == 2:
        msg = sys.argv[1]
        conn(msg)
    else:
        print 'Invalid args'
-------------------------------------------------------------------------------------------



SERVER
-------------------------------------------------------------------------------------------
#-*- coding:euc-kr -*-
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
from SocketServer import ForkingMixIn
from urllib import unquote_plus

class ForkingHTTPServer(ForkingMixIn, HTTPServer):
    pass

class MyHTTPHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        length = int(self.headers.getheader('content-length'))
        raw = self.rfile.read(length)

        msg = unquote_plus(raw.split('=')[1])

        print msg

        self.send_response(200)
        self.send_header('Content-type', 'text/xml')
        self.send_header('Content-length', str(len(msg)))
        self.end_headers()

        self.wfile.write(msg)
        self.wfile.close()

if __name__ == '__main__':
    print 'START ForkingHTTPServer'

    server = ForkingHTTPServer(('127.0.0.1',10001), MyHTTPHandler)
    server.serve_forever()
-------------------------------------------------------------------------------------------

댓글 없음:

댓글 쓰기