本文整理汇总了Python中tornado.httputil.parse_body_arguments函数的典型用法代码示例。如果您正苦于以下问题:Python parse_body_arguments函数的具体用法?Python parse_body_arguments怎么用?Python parse_body_arguments使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了parse_body_arguments函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
def __init__(self, data):
method, url, version, headers, self._body = msgpack.unpackb(data)
self._meta = dict()
self._headers = dict(headers)
self._meta['method'] = method
self._meta['version'] = version
self._meta['host'] = self._headers.get('Host') or self._headers.get('host', '')
self._meta['remote_addr'] = self._headers.get('X-Real-IP') or self._headers.get('X-Forwarded-For', '')
self._meta['query_string'] = urlparse.urlparse(url).query
self._meta['cookies'] = dict()
if 'Cookie' in self._headers:
try:
cookies = Cookie.BaseCookie()
cookies.load(escape.native_str(self._headers['Cookie']))
self._meta['cookies'] = dict((key, name.value) for key, name in cookies.iteritems())
except:
pass
tmp = urlparse.parse_qs(urlparse.urlparse(url).query)
self._request = dict((k, v[0]) for k, v in tmp.iteritems() if len(v) > 0)
self._files = None
args = dict()
files = dict()
parse_body_arguments(self._headers.get("Content-Type", ""), self._body, args, files)
self._request.update(dict((k, v[0]) for k, v in args.iteritems() if len(v) > 0))
self._files = files
示例2: __init__
def __init__(self, data):
method, url, version, headers, self._body = msgpack.unpackb(data)
self._meta = dict()
self._headers = dict(headers)
self._meta["method"] = method
self._meta["version"] = version
self._meta["host"] = self._headers.get("Host") or self._headers.get("host", "")
self._meta["remote_addr"] = self._headers.get("X-Real-IP") or self._headers.get("X-Forwarded-For", "")
self._meta["query_string"] = urlparse.urlparse(url).query
self._meta["cookies"] = dict()
if "Cookie" in self._headers:
try:
cookies = Cookie.BaseCookie()
cookies.load(escape.native_str(self._headers["Cookie"]))
self._meta["cookies"] = dict((key, name.value) for key, name in cookies.iteritems())
except:
pass
tmp = urlparse.parse_qs(urlparse.urlparse(url).query)
self._request = dict((k, v[0]) for k, v in tmp.iteritems() if len(v) > 0)
self._files = None
args = dict()
files = dict()
parse_body_arguments(self._headers.get("Content-Type", ""), self._body, args, files)
self._request.update(dict((k, v[0]) for k, v in args.iteritems() if len(v) > 0))
self._files = files
示例3: _on_request_body
def _on_request_body(self, data):
self._request.body = data
if self._request.method in ("POST", "PATCH", "PUT"):
httputil.parse_body_arguments(
self._request.headers.get("Content-Type", ""), data,
self._request.arguments, self._request.files)
self.request_callback(self._request)
示例4: _on_request_body
def _on_request_body(self, data):
self._request.body = data
if self._request.method in ("POST", "PATCH", "PUT"):
httputil.parse_body_arguments(
self._request.headers.get("Content-Type", ""), data,
self._request.body_arguments, self._request.files)
for k, v in self._request.body_arguments.items():
self._request.arguments.setdefault(k, []).extend(v)
self.request_callback(self._request)
示例5: get_image_data
def get_image_data():
content_type = self.request.headers.get('content-type')
body = b'{}'.format(self.request.body)
parse_body_arguments(content_type, body, post_data, files)
file_data = files['profile-image'][0].get('body')
original_file_name = files['profile-image'][0].get('filename')
extension = original_file_name.split('.')[-1]
file_name = u'{}.{}'.format(slugify(current_user_id), extension)
return file_data, file_name
示例6: handle_request_body
def handle_request_body(self, method, headers, body):
files = {}
arguments = {}
if method in ('POST', 'PATCH', 'PUT'):
_log.debug('Parsing message body')
httputil.parse_body_arguments(
headers.get('Content-Type', ''),
body,
arguments,
files)
return arguments, files
示例7: __init__
def __init__(self, data):
method, url, version, headers, self._body = msgpack_unpackb(data)
self._headers = HTTPHeaders(headers)
self._meta = {
'method': method,
'version': version,
'host': self._headers.get('Host', ''),
'remote_addr': self._headers.get('X-Real-IP') or self._headers.get('X-Forwarded-For', ''),
'query_string': urlparse.urlparse(url).query,
'cookies': dict(),
'parsed_cookies': http_parse_cookies(self._headers),
}
args = urlparse.parse_qs(urlparse.urlparse(url).query)
self._files = dict()
parse_body_arguments(self._headers.get("Content-Type", ""), self._body, args, self._files)
self._request = dict_list_to_single(args)
示例8: __init__
def __init__(self, environ):
"""Parses the given WSGI environment to construct the request."""
self.method = environ["REQUEST_METHOD"]
self.path = urllib_parse.quote(from_wsgi_str(environ.get("SCRIPT_NAME", "")))
self.path += urllib_parse.quote(from_wsgi_str(environ.get("PATH_INFO", "")))
self.uri = self.path
self.arguments = {}
self.query_arguments = {}
self.body_arguments = {}
self.query = environ.get("QUERY_STRING", "")
if self.query:
self.uri += "?" + self.query
self.arguments = parse_qs_bytes(native_str(self.query),
keep_blank_values=True)
self.query_arguments = copy.deepcopy(self.arguments)
self.version = "HTTP/1.1"
self.headers = httputil.HTTPHeaders()
if environ.get("CONTENT_TYPE"):
self.headers["Content-Type"] = environ["CONTENT_TYPE"]
if environ.get("CONTENT_LENGTH"):
self.headers["Content-Length"] = environ["CONTENT_LENGTH"]
for key in environ:
if key.startswith("HTTP_"):
self.headers[key[5:].replace("_", "-")] = environ[key]
if self.headers.get("Content-Length"):
self.body = environ["wsgi.input"].read(
int(self.headers["Content-Length"]))
else:
self.body = ""
self.protocol = environ["wsgi.url_scheme"]
self.remote_ip = environ.get("REMOTE_ADDR", "")
if environ.get("HTTP_HOST"):
self.host = environ["HTTP_HOST"]
else:
self.host = environ["SERVER_NAME"]
# Parse request body
self.files = {}
httputil.parse_body_arguments(self.headers.get("Content-Type", ""),
self.body, self.body_arguments, self.files)
for k, v in self.body_arguments.items():
self.arguments.setdefault(k, []).extend(v)
self._start_time = time.time()
self._finish_time = None
示例9: post
def post(self, dispatcher_id=None):
form = {}
parse_body_arguments('application/x-www-form-urlencoded',
self.request.body, form, {})
_payload = form.get('payload', ['']).pop()
action = form.get('action', ['']).pop()
payload = json.loads(_payload)
dispatcher = self.application.settings.get('dispatcher')
resp = yield gen.Task(dispatcher.send_msg, action,
payload,
self.context())
self.write(resp.payload)
self.finish()
示例10: __init__
def __init__(self, handler, form_id = None):
self._parmas = {}
self._values = {}
self._form_errors = {}
self.form_id = form_id
arguments = {}
# re-parse qs, keep_blankvalues for formencode to validate
# so formencode not_empty setting work.
request = handler.request
content_type = request.headers.get("Content-Type", "")
files = {}
parse_body_arguments(content_type,request.body,arguments,files)
try:
for key in files.keys():
arguments[key] = files.get(key)
except Exception, error:
pass
示例11: handle_request_body
def handle_request_body(self, message):
options = message.body['options']
files = {}
arguments = {}
if options['method'] in ('POST', 'PATCH', 'PUT'):
_log.debug('Parsing message body')
httputil.parse_body_arguments(
options['headers'].get('Content-Type', ''),
message.body['body'],
arguments,
files)
message.reply(
body={
'arguments': arguments,
'files': files
})
示例12: post
def post(self):
self.set_status(202)
user_data = {'username': '', 'password': ''}
files = {}
headers = {}
util.parse_body_arguments(self.request.headers['Content-Type'], self.request.body, files, headers)
for k in user_data.keys():
if k not in files.keys():
self.set_status(400, reason='incorrect data')
print 'INF: incorrect request data'
return
user_data[k] = files[k][0]
print "DEB: login username " + user_data['username']
user_cn = MySQLConnector()
user_cookie = user_cn.create_cookie(user_data)
if user_cookie is None:
self.set_status(401, reason='no such user-password pair') # unauthorized
return
self.write(json.dumps({'user_cookie': user_cookie}))
示例13: _begin_request
def _begin_request(self):
"""
Actually start executing this request.
"""
headers = self.m2req.headers
self._request = HTTPRequest(connection=self,
method=headers.get("METHOD"),
uri=self.m2req.path,
version=headers.get("VERSION"),
headers=HTTPHeaders(headers),
remote_ip=headers.get("x-forwarded-for"))
if len(self.m2req.body) > 0:
self._request.body = self.m2req.body
if self._request.method in ("POST", "PATCH", "PUT"):
parse_body_arguments(
self._request.headers.get("Content-Type", ""),
self._request.body,
self._request.arguments, self._request.files)
if self.m2req.is_disconnect():
self.finish()
elif headers.get("x-mongrel2-upload-done", None):
# there has been a file upload.
expected = headers.get("x-mongrel2-upload-start", "BAD")
upload = headers.get("x-mongrel2-upload-done", None)
if expected == upload:
self.request_callback(self._request)
elif headers.get("x-mongrel2-upload-start", None):
# this is just a notification that a file upload has started. Do
# nothing for now!
pass
else:
self.request_callback(self._request)
示例14: test_make_mfd
def test_make_mfd(self):
args, files = {}, {}
body, content_type = make_mfd(
{
'arg1': 'value1'
},
{
'file0': [HTTPFile(filename='file0.rar', body='ARCHIVE', content_type='some/type\r\n\r\nBAD DATA')],
'file1': [HTTPFile(filename='file1.png', body='CAT PICTURE', content_type=media_types.IMAGE_PNG)],
'file2': [HTTPFile(filename='file2.txt', body='TEXT')],
'file3': [
HTTPFile(filename=r'file3-"part1".unknown', body='BODY1'),
HTTPFile(filename=r'file3-\part2\.unknown', body='BODY2'),
],
}
)
parse_body_arguments(to_unicode(content_type), body, args, files)
self.assertEqual(args['arg1'], [b'value1'])
self.assertEqual(files['file0'][0]['filename'], 'file0.rar')
self.assertEqual(files['file0'][0]['body'], b'ARCHIVE')
self.assertEqual(files['file0'][0]['content_type'], 'some/type BAD DATA')
self.assertEqual(files['file1'][0]['filename'], 'file1.png')
self.assertEqual(files['file1'][0]['body'], b'CAT PICTURE')
self.assertEqual(files['file1'][0]['content_type'], media_types.IMAGE_PNG)
self.assertEqual(files['file2'][0]['filename'], 'file2.txt')
self.assertEqual(files['file2'][0]['body'], b'TEXT')
self.assertEqual(files['file2'][0]['content_type'], media_types.TEXT_PLAIN)
self.assertEqual(files['file3'][0]['filename'], r'file3-"part1".unknown')
self.assertEqual(files['file3'][0]['body'], b'BODY1')
self.assertEqual(files['file3'][0]['content_type'], media_types.APPLICATION_OCTET_STREAM)
self.assertEqual(files['file3'][1]['filename'], r'file3-\part2\.unknown')
self.assertEqual(files['file3'][1]['body'], b'BODY2')
self.assertEqual(files['file3'][1]['content_type'], media_types.APPLICATION_OCTET_STREAM)
示例15: __init__
def __init__(self, request, data):
self._underlying_request = request
method, url, version, headers, self._body = msgpack_unpackb(data)
if six.PY3:
method = method.decode()
url = url.decode()
version = version.decode()
headers = [(k.decode(), v.decode()) for k, v in headers]
self._headers = HTTPHeaders(headers)
self._meta = {
'method': method,
'version': version,
'host': self._headers.get('Host', ''),
'remote_addr': self._headers.get('X-Real-IP') or self._headers.get('X-Forwarded-For', ''),
'query_string': urlparse.urlparse(url).query,
'cookies': dict(),
'parsed_cookies': http_parse_cookies(self._headers),
}
args = urlparse.parse_qs(urlparse.urlparse(url).query)
self._files = dict()
parse_body_arguments(self._headers.get("Content-Type", ""), self._body, args, self._files)
self._request = dict_list_to_single(args)