예제 #1
0
	def process_response(self, success, callback, data, args):
		if success:
			retval = Util.decode_post(data)
			if not retval:
				Util.err_log("Unable to decode response: args=%s data=%s" % (str(args), data))
				self.api_error[ args[0] ] = ApiError.badData("Unable to parse data")
				return

			if not Util.status_success(retval):
				self.api_error[ args[0] ] = ApiError.internalApiError(retval[ Constants.STATUS ])
			else:
				self.api_data[ args[0] ] = retval[ Constants.RESULT ]
				if callback:
					callback(args, retval[ Constants.RESULT ])
		else:
			self.api_error[ args[0] ] = ApiError.connectionError(data)
예제 #2
0
	except Exception, e:
		err = c.errstr()
		ConnPool.put(c)
		return [ False, None, Util.gen_error(version, ApiError.connectionError(err)) ]
		
	if c.getinfo(pycurl.HTTP_CODE) != 200:
		err = c.errstr()
		ConnPool.put(c)
		return [ False, None, Util.gen_error(version, ApiError.connectionError(err)) ]
	ConnPool.put(c)

	ret = Util.decode_post(s.getvalue())
	if not ret:
		return [ False, None, Util.gen_error(version, ApiError.badData("Unable to parse response body")) ]
		
	if not Util.status_success(ret):
		return [ False, None, Util.gen_error(version, ApiError.internalApiError(ret[ Constants.STATUS ])) ]
	return [ True, ret[ Constants.RESULT ], None ]

def exec_curl2(version, req, args):
	s = cStringIO.StringIO()
	c = Util.fun_wrapper(req, args)
	c.setopt(pycurl.WRITEFUNCTION, s.write)
	try:
		c.perform()
	except Exception, e:
		err = c.errstr()
		ConnPool.put(c)
		return [ False, None, Util.gen_error(version, ApiError.connectionError(err)), None ]
		
	if c.getinfo(pycurl.HTTP_CODE) != 200: