NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

xmlrpc.py (1093B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\lib\cherrypy\lib\xmlrpc.py
      2 import sys
      3 import cherrypy
      4 
      5 def process_body():
      6     try:
      7         import xmlrpclib
      8         return xmlrpclib.loads(cherrypy.request.body.read())
      9     except Exception:
     10         return (('ERROR PARAMS',), 'ERRORMETHOD')
     11 
     12 
     13 def patched_path(path):
     14     if not path.endswith('/'):
     15         path += '/'
     16     if path.startswith('/RPC2/'):
     17         path = path[5:]
     18     return path
     19 
     20 
     21 def _set_response(body):
     22     response = cherrypy.response
     23     response.status = '200 OK'
     24     response.body = body
     25     response.headers['Content-Type'] = 'text/xml'
     26     response.headers['Content-Length'] = len(body)
     27 
     28 
     29 def respond(body, encoding = 'utf-8', allow_none = 0):
     30     from xmlrpclib import Fault, dumps
     31     if not isinstance(body, Fault):
     32         body = (body,)
     33     _set_response(dumps(body, methodresponse=1, encoding=encoding, allow_none=allow_none))
     34 
     35 
     36 def on_error(*args, **kwargs):
     37     body = str(sys.exc_info()[1])
     38     from xmlrpclib import Fault, dumps
     39     _set_response(dumps(Fault(1, body)))