• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python xmlrpclib.getparser函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中xmlrpclib.getparser函数的典型用法代码示例。如果您正苦于以下问题:Python getparser函数的具体用法?Python getparser怎么用?Python getparser使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了getparser函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: call

def call(request):
	"""
	This is the view you need to map into your URL space to process RPC
	calls.
	"""
	if request.POST:		
		p, u = xmlrpclib.getparser()
		p.feed(request.raw_post_data)
		p.close()
		#print request.raw_post_data
		args = u.close()
		method = u.getmethodname()		
		func = getattr(__import__('blog'), 'metaweblogapi')
		func = getattr(func,str(method.split('.')[1]))		
		if DEBUG: print method, func, args
		if func is not None:
			try:
				result = func(*args)
				xml = xmlrpclib.dumps((result,), methodresponse=1)
				if DEBUG: print result
			except Exception, e:
				if DEBUG: print e
				xml = xmlrpclib.dumps(xmlrpclib.Fault(-32400, 'system error: %s' % e), methodresponse=1)				
		else:
			xml = xmlrpclib.dumps(xmlrpclib.Fault(-32601, 'method unknown: %s' % method), methodresponse=1)
			
		return HttpResponse(xml, mimetype='text/xml; charset=utf-8')
开发者ID:002jnm,项目名称:Pylogs,代码行数:27,代码来源:rpc.py


示例2: parse_response

def parse_response(f, conn, debug=0):
    """parse_response(file_obj)

    Read response from input file object, and parse it
    
    The parsed data is returned to the caller
    """
    p,u=xmlrpclib.getparser()
    if debug:
      s=StringIO.StringIO()
    i=0
    try:
      while 1:
        try:
#          print f.fp._line_consumed, f.fp._line_left
          response = f.read()
        except AssertionError:
          break
        if not response:
            break
        if debug:
          s.write(response)
        p.feed(response)
      if debug:
        err_msg(s.getvalue())
      p.close()
      return u.close()
    except:
      if debug:
        err_msg(s.getvalue())
      raise
开发者ID:giffels,项目名称:PRODAGENT,代码行数:31,代码来源:ClarensDpe.py


示例3: request

    def request(self, host, handler, request_body, verbose=0):
        p, u = getparser()
        ssh = self.getssh()
        ssh.stdin.write("""POST /%s HTTP/1.1
User-Agent: Xen
Host: %s
Content-Type: text/xml
Content-Length: %d

%s""" % (handler, host, len(request_body), request_body))
        ssh.stdin.flush()

        content_length = 0
        line = ssh.stdout.readline()
        if line.split()[1] != '200':
            raise Fault(0, 'Server returned %s' % (' '.join(line[1:])))
        
        while line not in ['', '\r\n', '\n']:
            if line.lower().startswith('content-length:'):
                content_length = int(line[15:].strip())
            line = ssh.stdout.readline()
        content = ssh.stdout.read(content_length)
        p.feed(content)
        p.close()
        return u.close()
开发者ID:Angel666,项目名称:android_hardware_intel,代码行数:25,代码来源:SSHTransport.py


示例4: http_POST

 def http_POST(self, request):
     parser, unmarshaller = xmlrpclib.getparser()
     deferred = stream.readStream(request.stream, parser.feed)
     deferred.addCallback(lambda x: self._cbDispatch(request, parser, unmarshaller))
     deferred.addErrback(self._ebRender)
     deferred.addCallback(self._cbRender, request)
     return deferred
开发者ID:jsober,项目名称:twisted,代码行数:7,代码来源:xmlrpc.py


示例5: __send

	def __send(self, methodname, args):

        self.__ensure_channel()

        request=xmlrpclib.dumps(args, methodname, encoding=None) 

        self.__channel.sendall( ("%08d" % (len(request),))+request)

        resplen=self.__recvall(self.__channel, 8)

        resplen=int(resplen)

        response=self.__recvall(self.__channel, resplen)

        p, u = xmlrpclib.getparser()

        p.feed(response)

        p.close()

        try:

            response=u.close()

        except xmlrpclib.Fault,e:

            if e.faultCode!=17:

                raise e

            klass,str=e.faultString.split(':', 1)

            raise common.getfullname(klass)(str)
开发者ID:joliebig,项目名称:featurehouse_fstmerge_examples,代码行数:33,代码来源:xmlrpcstuff.py


示例6: process_request

 def process_request(self, request):
     format_string = getattr(settings, 'FORMAT_STRING', 'format')
     format = request.GET.get(format_string, '')
     if format:
         request.format = format.lower() #could be "json", "xmlrpc", etc
     else:
         request.format = getattr(settings, 'DEFAULT_FORMAT', 'json')
     if request.format == 'xmlrpc':
         import xmlrpclib
         p, u = xmlrpclib.getparser()
         p.feed(request.raw_post_data)
         p.close()
         
         args = u.close()
         if len(args) > 0:
             args = args[0]
             if not isinstance(args, dict):
                 xml = xmlrpclib.dumps(xmlrpclib.Fault(-32400, 'system error: %s' % 'Arguments should be a dict'), methodresponse=1)				
                 return HttpResponse(xml, mimetype='text/xml; charset=utf-8')
                 
             old = request.POST._mutable
             request.POST._mutable = True
             for k, v in args.items():
                 request.POST[k] = v
             request.POST._mutable = old
开发者ID:BGCX261,项目名称:zipbook-svn-to-git,代码行数:25,代码来源:middle_format.py


示例7: request

 def request(self, host, handler, request, verbose):
     response = self._session.post(self._uri, data = request,
             headers={"Content-Type": "text/xml; charset=UTF-8"})
     p, u = xmlrpclib.getparser()
     p.feed(response.content)
     p.close()
     response.close()
     return u.close()
开发者ID:P4ncake,项目名称:weboob,代码行数:8,代码来源:module.py


示例8: _read_request

 def _read_request(self, stream):
     parser, unmarshaller = getparser()
     while True:
         chunk = stream.read(8192)
         if not chunk:
             break
         parser.feed(chunk)
     parser.close()
     return unmarshaller.close(), unmarshaller.getmethodname()
开发者ID:mikem23,项目名称:copr-koji,代码行数:9,代码来源:kojixmlrpc.py


示例9: __parse_action_data

 def __parse_action_data(self, action):
     """ Parse action data and returns (method, params) """
     data = action['action']
     parser, decoder = xmlrpclib.getparser()
     parser.feed(data.encode("utf-8"))
     parser.close()
     params = decoder.close()
     method = decoder.getmethodname()
     return (method, params)
开发者ID:BlackSmith,项目名称:spacewalk,代码行数:9,代码来源:rhn_check.py


示例10: __parse

 def __parse(self, response):
     p, u = xmlrpclib.getparser()
     p.feed(response.body)
     p.close()
     tmp = u.close()
     
     if len(tmp) == 1:
         tmp = tmp[0]
         
     return tmp
开发者ID:SethCLong,项目名称:tornado,代码行数:10,代码来源:xmlrpc.py


示例11: request

	def request(self, host, uripath, body, verbose=0):
		self._http_request(uripath, body, host)
		response=self.conn.getresponse()
		if response.status != 200:
			raise xmlrpclib.ProtocolError(host+uripath, response.status,
							response.reason, response.msg)
		data=response.read()
		parser, unmarshaller=xmlrpclib.getparser()
		parser.feed(data)
		parser.close()
		return unmarshaller.close()
开发者ID:4N7HR4X,项目名称:kamailio,代码行数:11,代码来源:xmlrpc_test.py


示例12: _read_request

 def _read_request(self, stream):
     parser, unmarshaller = getparser()
     rlen = 0
     maxlen = opts.get('MaxRequestLength', None)
     while True:
         chunk = stream.read(8192)
         if not chunk:
             break
         rlen += len(chunk)
         if maxlen and rlen > maxlen:
             raise koji.GenericError, 'Request too long'
         parser.feed(chunk)
     parser.close()
     return unmarshaller.close(), unmarshaller.getmethodname()
开发者ID:koji-project,项目名称:koji,代码行数:14,代码来源:kojixmlrpc.py


示例13: _parse_response

  def _parse_response(self, response_body):
    """Parse XML-RPC response without socket connection.

    Args:
      response_body: string, XML-RPC response body.

    Returns:
      A tuple containing the unmarshalled XML-RPC response.
    """

    # pylint: disable-msg=E6412
    # Disable error for unexpected keyword argument.
    parser, unmarshaller = xmlrpclib.getparser(use_datetime=0)
    # pylint: enable-msg=E6412
    parser.feed(response_body)
    return unmarshaller.close()
开发者ID:angvp,项目名称:gord,代码行数:16,代码来源:xmlrpc.py


示例14: request

    def request(self, host, handler, request_body, verbose = False):
        parser, unmarshaller = getparser()

        response = self.client.post(handler, request_body, 'text/xml')

        if response.status_code != 200:
            raise ProtocolError(
              '%s%s' % (host, handler),
              response.status_code,
              responses.get(response.status_code, ''),
              dict(response.items()),
            )

        parser.feed(response.content)

        return unmarshaller.close()
开发者ID:msabramo,项目名称:djangotestxmlrpc,代码行数:16,代码来源:djangotestxmlrpc.py


示例15: _parse

    def _parse(self, f, chan):
        n = 0
        line = f.readline()
        if line.split()[1] != '200':
            raise ControlConnectError, 'HTTP request failed' + line

        while n == 0:
            if line.lower().startswith('content-length:'):
                n = int(line[15:].strip())
            line = f.readline()
        content = f.read(n)
        f.close()
        chan.close()

        p, u = xmlrpclib.getparser()
        p.feed(content)
        p.close()
        return u.close()
开发者ID:XiaohaoYang,项目名称:diffpy.pdfgui,代码行数:18,代码来源:connection.py


示例16: continue_request

	def continue_request( self, data, request ):
		if self.set.conf.has_key('defaultencoding'):
			encoding = self.set.conf['defaultencoding']
			new = self.set.PatchEncodingHeader( data )
			OriginalUnmarshaller = xmlrpclib.Unmarshaller
			xmlrpclib.Unmarshaller = Unmarshaller
			p, u = xmlrpclib.getparser()
			xmlrpclib.Unmarshaller = OriginalUnmarshaller
			u.set_resultencoding( encoding )
			p.feed( new )
			p.close()
			params = u.close()
			method = u.getmethodname()
			#parms = []
			#for p in params:
			#	if type( p ) == type( u'' ):
			#		parms.append( p.encode( encoding ) )
			#	else:
			#		parms.append( p )
			#params = tuple(parms)
			try:
				# generate response
				try:
					response = self.call( method, params )
					if type( response ) != type( () ):
						response = ( response, )
				except:
					# report exception back to server
					response = xmlrpclib.dumps( 
						xmlrpclib.Fault( 1, "%s:%s" % (sys.exc_type, sys.exc_value))
						)
				else:
					response = xmlrpclib.dumps( response, methodresponse=1, encoding=encoding )
			except:
				# report internal error
				request.error( 500 )
			else:
				# got a valid response
				request['Content-Type'] = 'text/xml'
				request.push( response )
				request.done()
		else:
			xmlrpc_handler.xmlrpc_handler.continue_request( self, data, request )
开发者ID:myelin,项目名称:pycs,代码行数:43,代码来源:pycs_xmlrpc_handler.py


示例17: __init__

    def __init__(self, client_version, req):
        self.client = client_version
        self.req = req
        # grab an Input object
        self.input = transports.Input(req.headers_in)
        # make sure we have a parser and a decoder available
        self.parser, self.decoder = xmlrpclib.getparser()
        # Make sure the decoder doesn't assume UTF-8 data, that would break if
        # non-UTF-8 chars are sent (bug 139370)
        self.decoder._encoding = None

        # extract the server we're talking to and the root directory
        # from the request configuration options
        req_config = req.get_options()
        # XXX: attempt to catch these KeyErrors sometime when there is
        # time to play nicely
        self.server = req_config["SERVER"]
        # Load the server classes
        # XXX: some day we're going to trust the timestamp stuff...
        self.servers = None
        self._setup_servers()
开发者ID:cliffy94,项目名称:spacewalk,代码行数:21,代码来源:apacheRequest.py


示例18: patchRPCParser

def patchRPCParser(error_handler):
    """
    Patch xmlrpcmlib's parser class, so it logs data content in case of errors,
    to ease debugging.
    Warning: this installs a monkey patch on a generic class, so it's last
    comes wins. Must *not* be enabled by default.

    error_handler (callable)
      Receives the erroneous data as first parameter, and the exception
      instance as second parameter.
      If it returns a false value (ie, handler did not recover from the error),
      exception is re-raised.
    """
    parser, _ = xmlrpclib.getparser()
    parser_klass = parser.__class__
    original_feed = parser_klass.feed
    def verbose_feed(self, data):
        try:
            return original_feed(self, data)
        except Exception, exc:
            if not error_handler(data, exc):
                raise
开发者ID:Verde1705,项目名称:erp5,代码行数:22,代码来源:__init__.py


示例19: warranted

    def warranted(cls):
        # We cache it so that we don't actually retest.
        if cls._warranted is not None:
            return cls._warranted

        good = True
        parser, unmarshaller = xmlrpclib.getparser()
        try:
            # This will fail if the unmarshaller is unable to handle ex:nil.
            # We do not test for every value that we patch for. We assume if
            # ex:nil won't work, no other extended value will.
            parser.feed("<params><param><value><ex:nil/></value></param></params>")
        except xmlrpclib.ResponseError:
            good = False

        # Trying to close if there was an error earlier won't work.
        if good:
            parser.close()
            unmarshaller.close()

        cls._warranted = not good
        return cls._warranted
开发者ID:emory-libraries,项目名称:eulexistdb,代码行数:22,代码来源:patch.py


示例20: handle_action

def handle_action(action):
    global server

    log.log_debug("handle_action", action)

    version = action['version']
    action_id = action['id']
    data = action['action']

    log.log_debug("handle_action actionid = %s, version = %s" % (
        action_id, version))

    # Decipher the data
    parser, decoder = xmlrpclib.getparser()
    parser.feed(data)
    parser.close()
    params = decoder.close()
    method = decoder.getmethodname()
    data = {}

    (status, message, data) = run_action(method, params)

    log.log_debug("Sending back response", (status, message, data))
    return submit_response(action_id, status, message, data)
开发者ID:NehaRawat,项目名称:spacewalk,代码行数:24,代码来源:rhn_check.py



注:本文中的xmlrpclib.getparser函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python xmlrpclib.loads函数代码示例发布时间:2022-05-26
下一篇:
Python xmlrpclib.dumps函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap