本文整理汇总了Python中wpull.http.request.Response.parse方法的典型用法代码示例。如果您正苦于以下问题:Python Response.parse方法的具体用法?Python Response.parse怎么用?Python Response.parse使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wpull.http.request.Response
的用法示例。
在下文中一共展示了Response.parse方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: read_response
# 需要导入模块: from wpull.http.request import Response [as 别名]
# 或者: from wpull.http.request.Response import parse [as 别名]
def read_response(self, response=None):
'''Read the response's HTTP status line and header fields.
Coroutine.
'''
_logger.debug('Reading header.')
if response is None:
response = Response()
header_lines = []
bytes_read = 0
while True:
try:
data = yield From(self._connection.readline())
except ValueError as error:
raise ProtocolError(
'Invalid header: {0}'.format(error)) from error
self._data_observer.notify('response', data)
if not data.endswith(b'\n'):
raise NetworkError('Connection closed.')
elif data in (b'\r\n', b'\n'):
break
header_lines.append(data)
assert data.endswith(b'\n')
bytes_read += len(data)
if bytes_read > 32768:
raise ProtocolError('Header too big.')
if not header_lines:
raise ProtocolError('No header received.')
response.parse(b''.join(header_lines))
raise Return(response)
示例2: read_response
# 需要导入模块: from wpull.http.request import Response [as 别名]
# 或者: from wpull.http.request.Response import parse [as 别名]
def read_response(self, response=None):
"""Read the response's HTTP status line and header fields.
Coroutine.
"""
_logger.debug("Reading header.")
if response is None:
response = Response()
header_lines = []
bytes_read = 0
while True:
try:
data = yield From(self._connection.readline())
except ValueError as error:
raise ProtocolError("Invalid header: {0}".format(error)) from error
self._data_observer.notify("response", data)
if not data.endswith(b"\n"):
raise NetworkError("Connection closed.")
elif data in (b"\r\n", b"\n"):
break
header_lines.append(data)
assert data.endswith(b"\n")
bytes_read += len(data)
if bytes_read > 32768:
raise ProtocolError("Header too big.")
if not header_lines:
raise ProtocolError("No header received.")
response.parse(b"".join(header_lines))
raise Return(response)
示例3: test_response_status_codes
# 需要导入模块: from wpull.http.request import Response [as 别名]
# 或者: from wpull.http.request.Response import parse [as 别名]
def test_response_status_codes(self):
response = Response()
response.parse(b'HTTP/1.0 0\r\n')
response.parse(b'\r\n')
self.assertEqual(0, response.status_code)
response = Response()
response.parse(b'HTTP/1.0 999\r\n')
response.parse(b'\r\n')
self.assertEqual(999, response.status_code)
response = Response(0, '')
self.assertEqual(0, response.status_code)
示例4: test_response_empty_reason_line
# 需要导入模块: from wpull.http.request import Response [as 别名]
# 或者: from wpull.http.request.Response import parse [as 别名]
def test_response_empty_reason_line(self):
response = Response()
response.parse(b'HTTP/1.0 200\r\n')
response.parse(b'Cake: dolphin\r\n')
response.parse(b'\r\n')
self.assertEqual(200, response.status_code)
self.assertEqual('', response.reason)
self.assertEqual('dolphin', response.fields['Cake'])
示例5: test_response_parse
# 需要导入模块: from wpull.http.request import Response [as 别名]
# 或者: from wpull.http.request.Response import parse [as 别名]
def test_response_parse(self):
response = Response()
response.parse(b'HTTP/1.0 200 OK\r\n')
response.parse('Cake: dolphın\r\n'.encode('utf-8'))
response.parse(b'\r\n')
self.assertEqual(200, response.status_code)
self.assertEqual('OK', response.reason)
self.assertEqual('dolphın'.encode('utf-8').decode('latin-1'),
response.fields['Cake'])
response = Response()
response.parse(b'HTTP/1.0 200 OK\r\n')
response.parse(b'Cake: \xffdolphin\r\n')
response.parse(b'\r\n')
self.assertEqual(200, response.status_code)
self.assertEqual('OK', response.reason)
self.assertEqual('\xffdolphin', response.fields['Cake'])