Esempio n. 1
0
    def unpackReq(self, field):
        raw_req = field.get_request()
        Log.info("query string: %s" %(str(raw_req)))
        try:
            json_req = json.loads(raw_req)
        except:
            raise InterErr(InterErr.E_PARAM_ERR, "input is not a json")

        check_param = {"interfaceName":[basestring, utils.isNotEmpty],
                       "data":[dict]}
        utils.check_dict_data(json_req, check_param)
        self.req["interfaceName"] = json_req["interfaceName"]
        self.req["data"] = json_req["data"]
Esempio n. 2
0
def application(environ, start_response):

    Log.update_id()  # 保证每次请求的id都不同

    if "REMOTE_ADDR" in environ:
        Log.info("request from %s" % (str(environ["REMOTE_ADDR"])))

    field = None
    if "wsgi.input" in environ:  # wsgi
        field = RequestFieldStorage(fp=environ["wsgi.input"], environ=environ)
    else:  # 普通cgi
        field = RequestFieldStorage(environ=environ)

    try:
        cgi = CgiFactory(field).gen_cgi()
        cgi.process()
        ret = cgi.reply(start_response)
    except Exception, e:
        process_header("200", [("Content-Type", "text/plain")])
        ret = traceback.format_exc()
Esempio n. 3
0
def application(environ, start_response):

    Log.update_id() #保证每次请求的id都不同

    if "REMOTE_ADDR" in environ:
        Log.info("request from %s" %(str(environ["REMOTE_ADDR"])))

    field = None
    if "wsgi.input" in environ:  #wsgi
        field = RequestFieldStorage(fp=environ['wsgi.input'], environ=environ)
    else:  #普通cgi
        field = RequestFieldStorage(environ=environ)

    try:
        cgi = CgiFactory(field).gen_cgi()
        cgi.process()
        ret = cgi.reply(start_response)
    except Exception, e:
        process_header("200", [('Content-Type', 'text/plain')])
        ret = traceback.format_exc()
Esempio n. 4
0
    if "REMOTE_ADDR" in environ:
        Log.info("request from %s" % (str(environ["REMOTE_ADDR"])))

    field = None
    if "wsgi.input" in environ:  # wsgi
        field = RequestFieldStorage(fp=environ["wsgi.input"], environ=environ)
    else:  # 普通cgi
        field = RequestFieldStorage(environ=environ)

    try:
        cgi = CgiFactory(field).gen_cgi()
        cgi.process()
        ret = cgi.reply(start_response)
    except Exception, e:
        process_header("200", [("Content-Type", "text/plain")])
        ret = traceback.format_exc()

    if "REMOTE_ADDR" in environ:
        Log.info("response to %s: %s" % (str(environ["REMOTE_ADDR"]), str(ret)))
    return ret


if __name__ == "__main__":
    import os

    ret = application(os.environ, process_header)
    for item in ret:
        sys.stdout.write(item)
        sys.stdout.flush()
Esempio n. 5
0
    Log.update_id() #保证每次请求的id都不同

    if "REMOTE_ADDR" in environ:
        Log.info("request from %s" %(str(environ["REMOTE_ADDR"])))

    field = None
    if "wsgi.input" in environ:  #wsgi
        field = RequestFieldStorage(fp=environ['wsgi.input'], environ=environ)
    else:  #普通cgi
        field = RequestFieldStorage(environ=environ)

    try:
        cgi = CgiFactory(field).gen_cgi()
        cgi.process()
        ret = cgi.reply(start_response)
    except Exception, e:
        process_header("200", [('Content-Type', 'text/plain')])
        ret = traceback.format_exc()

    if "REMOTE_ADDR" in environ:
        Log.info("response to %s: %s"  %(str(environ["REMOTE_ADDR"]), str(ret)))
    return ret

if __name__ == "__main__":
    import os
    ret = application(os.environ, process_header)
    for item in ret:
        sys.stdout.write(item)
        sys.stdout.flush()