本文整理汇总了Python中requests.models.Response.raw方法的典型用法代码示例。如果您正苦于以下问题:Python Response.raw方法的具体用法?Python Response.raw怎么用?Python Response.raw使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类requests.models.Response
的用法示例。
在下文中一共展示了Response.raw方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: send
# 需要导入模块: from requests.models import Response [as 别名]
# 或者: from requests.models.Response import raw [as 别名]
def send(self, request, stream=None, timeout=None, verify=None, cert=None, proxies=None):
pathname = url_to_path(request.url)
resp = Response()
resp.status_code = 200
resp.url = request.url
try:
stats = lstat(pathname)
except (IOError, OSError) as exc:
resp.status_code = 404
message = {
"error": "file does not exist",
"path": pathname,
"exception": repr(exc),
}
fh = SpooledTemporaryFile()
fh.write(ensure_binary(json.dumps(message)))
fh.seek(0)
resp.raw = fh
resp.close = resp.raw.close
else:
modified = formatdate(stats.st_mtime, usegmt=True)
content_type = guess_type(pathname)[0] or "text/plain"
resp.headers = CaseInsensitiveDict({
"Content-Type": content_type,
"Content-Length": stats.st_size,
"Last-Modified": modified,
})
resp.raw = open(pathname, "rb")
resp.close = resp.raw.close
return resp
示例2: test_GET_request
# 需要导入模块: from requests.models import Response [as 别名]
# 或者: from requests.models.Response import raw [as 别名]
def test_GET_request(self):
request = DummyRequest(
path='/proxy/bar/remote/path/@@view',
params={'foo': 'bar'},
headers={'X-BRIDGE-ORIGIN': 'foo',
'X-BRIDGE-AC': 'john.doe'})
response = Response()
response.status_code = 200
response.raw = StringIO('the response data')
response.headers['content-length'] = 17
self.expect(self.requests.request(
'get',
'http://127.0.0.1:9080/bar/remote/path/@@view',
params={'foo': 'bar'},
headers={'X-BRIDGE-ORIGIN': 'foo',
'X-BRIDGE-AC': 'john.doe'})).result(
response)
self.mocker.replay()
proxy = queryAdapter(request, IProxy)
response = proxy()
self.assertTrue(IResponse.providedBy(response))
self.assertEqual(response.status, '200 OK')
self.assertEqual(response.body, 'the response data')
示例3: _build_response_
# 需要导入模块: from requests.models import Response [as 别名]
# 或者: from requests.models.Response import raw [as 别名]
def _build_response_(self, with_errors=False):
r = Response()
r.status_code = 401
r.encoding = 'utf-8'
json = dumps(self._build_json_(with_errors))
r.raw = StringIO(json.encode())
return r
示例4: build_response
# 需要导入模块: from requests.models import Response [as 别名]
# 或者: from requests.models.Response import raw [as 别名]
def build_response(self, request, resp):
"""
Builds a Requests' response object. This emulates most of the logic of
the standard fuction but deals with the lack of the ``.headers``
property on the HTTP20Response object.
"""
response = Response()
response.status_code = resp.status
response.headers = CaseInsensitiveDict(resp.getheaders())
response.raw = resp
response.reason = resp.reason
response.encoding = get_encoding_from_headers(response.headers)
extract_cookies_to_jar(response.cookies, request, response)
if isinstance(request.url, bytes):
response.url = request.url.decode('utf-8')
else:
response.url = request.url
response.request = request
response.connection = self
# One last horrible patch: Requests expects its raw responses to have a
# release_conn method, which I don't. We should monkeypatch a no-op on.
resp.release_conn = lambda: None
return response
示例5: build_response
# 需要导入模块: from requests.models import Response [as 别名]
# 或者: from requests.models.Response import raw [as 别名]
def build_response(self, req, resp):
"""Builds a :class:`Response <requests.Response>` object from a urllib3
response. This should not be called from user code, and is only exposed
for use when subclassing the
:class:`HTTPAdapter <requests.adapters.HTTPAdapter>`
:param req: The :class:`PreparedRequest <PreparedRequest>` used to generate the response.
:param resp: The urllib3 response object.
"""
response = Response()
# Fallback to None if there's no status_code, for whatever reason.
response.status_code = getattr(resp, 'status', None)
# Make headers case-insensitive.
response.headers = CaseInsensitiveDict(getattr(resp, 'headers', {}))
# Set encoding.
response.encoding = get_encoding_from_headers(response.headers)
response.raw = resp
response.reason = response.raw.reason
if isinstance(req.url, bytes):
response.url = req.url.decode('utf-8')
else:
response.url = req.url
# Add new cookies from the server.
extract_cookies_to_jar(response.cookies, req, resp)
# Give the Response some context.
response.request = req
response.connection = self
return response
示例6: send
# 需要导入模块: from requests.models import Response [as 别名]
# 或者: from requests.models.Response import raw [as 别名]
def send(self, request, **kwargs):
url = urlparse(request.url)
if url.scheme != 'https':
raise Exception('Only HTTPS is supported!')
ctx = self._make_context()
conn = httpslib.HTTPSConnection(
url.hostname, url.port or 443, ssl_context=ctx)
conn.request(request.method, url.path, request.body, request.headers)
resp = conn.getresponse()
response = Response()
# Fallback to None if there's no status_code, for whatever reason.
response.status_code = getattr(resp, 'status', None)
# Make headers case-insensitive.
response.headers = CaseInsensitiveDict(getattr(resp, 'headers', {}))
# Set encoding.
response.encoding = get_encoding_from_headers(response.headers)
response.raw = resp
response.reason = response.raw.reason
if isinstance(request.url, bytes):
response.url = request.url.decode('utf-8')
else:
response.url = request.url
# Give the Response some context.
response.request = request
response.connection = self
return response
示例7: test_get_document_content
# 需要导入模块: from requests.models import Response [as 别名]
# 或者: from requests.models.Response import raw [as 别名]
def test_get_document_content(self, mock_request):
response = Response()
response.status_code = 200
response.headers['Content-Type'] = 'text/plain'
response._content = 'test'
response.raw = six.BytesIO('test')
mock_request.return_value = response
stream = six.BytesIO()
mimetype = self.api.get_document_content(stream, test_document['id'])
self.assertEqual(stream.getvalue(), response._content)
self.assertEqual(mimetype, response.headers['Content-Type'])
stream = six.BytesIO()
self.api.get_document_content(stream,
test_document['id'],
extension='.pdf')
self.assertEqual(stream.getvalue(), response._content)
stream = six.BytesIO()
self.api.get_document_content(stream,
test_document['id'],
extension='.zip')
self.assertEqual(stream.getvalue(), response._content)
stream = six.BytesIO()
# allowed only .zip and .pdf extensions
self.assertRaises(ValueError,
self.api.get_document_content,
stream,
test_document['id'],
extension='.docx')
示例8: _receive_response
# 需要导入模块: from requests.models import Response [as 别名]
# 或者: from requests.models.Response import raw [as 别名]
def _receive_response(self, task, response):
"""
Called by the delegate when a response has been received.
This call is expected only on background threads, and thus may not do
anything that is not Python-thread-safe. This means that, for example,
it is safe to grab things from the _tasks dictionary, but it is not
safe to make other method calls on this object unless they explicitly
state that they are safe in background threads.
"""
queue, request = self._tasks[task]
resp = Response()
resp.status_code = getKey(response, 'statusCode')
resp.reason = ''
# TODO: Why do I have to do this?
raw_headers = getKey(response, 'allHeaderFields')
resp.headers = CaseInsensitiveDict(raw_headers)
resp.encoding = get_encoding_from_headers(resp.headers)
# TODO: This needs to point to an object that we can use to provide
# the various raw things that requests needs.
resp.raw = None
if isinstance(request.url, bytes):
resp.url = request.url.decode('utf-8')
else:
resp.url = request.url
resp.request = request
resp.connection = self
# Put this response on the queue.
queue.put_nowait(resp)
示例9: request
# 需要导入模块: from requests.models import Response [as 别名]
# 或者: from requests.models.Response import raw [as 别名]
def request(method, url, **kwargs):
if 'data' in kwargs:
kwargs['params'] = kwargs.pop('data')
elif 'params' in kwargs and kwargs['params'] is None:
kwargs.pop('params')
auth = None
if 'auth' in kwargs:
auth = kwargs.pop('auth')
for i in ['auth', 'allow_redirects', 'stream']:
if i in kwargs:
kwargs.pop(i)
if app.app.registry.api_url in url:
if auth:
authorization = api.authorization
api.authorization = ('Basic', auth)
resp = api._gen_request(method.upper(), url, expect_errors=True, **kwargs)
if auth:
api.authorization = authorization
else:
resp = app._gen_request(method.upper(), url, expect_errors=True, **kwargs)
response = Response()
response.status_code = resp.status_int
response.headers = CaseInsensitiveDict(getattr(resp, 'headers', {}))
response.encoding = get_encoding_from_headers(response.headers)
response.raw = resp
response._content = resp.body
response.reason = resp.status
if isinstance(url, bytes):
response.url = url.decode('utf-8')
else:
response.url = url
response.request = resp.request
return response
示例10: send
# 需要导入模块: from requests.models import Response [as 别名]
# 或者: from requests.models.Response import raw [as 别名]
def send(self, request, stream=None, timeout=None, verify=None, cert=None,
proxies=None):
parsed_url = urlparse.urlparse(request.url)
# We only work for requests with a host of localhost
if parsed_url.netloc.lower() != "localhost":
raise InvalidURL("Invalid URL %r: Only localhost is allowed" %
request.url)
real_url = urlparse.urlunparse(parsed_url[:1] + ("",) + parsed_url[2:])
pathname = url_to_path(real_url)
resp = Response()
resp.status_code = 200
resp.url = real_url
stats = os.stat(pathname)
modified = email.utils.formatdate(stats.st_mtime, usegmt=True)
resp.headers = CaseInsensitiveDict({
"Content-Type": mimetypes.guess_type(pathname)[0] or "text/plain",
"Content-Length": stats.st_size,
"Last-Modified": modified,
})
resp.raw = LocalFSResponse(open(pathname, "rb"))
resp.close = resp.raw.close
return resp
示例11: test_proxy_replaces_portal_url_in_data
# 需要导入模块: from requests.models import Response [as 别名]
# 或者: from requests.models.Response import raw [as 别名]
def test_proxy_replaces_portal_url_in_data(self):
request = DummyRequest(
path='/proxy/bar/remote/path/@@view',
params={'foo': 'bar %s baz' % PORTAL_URL_PLACEHOLDER},
headers={'X-BRIDGE-ORIGIN': 'foo',
'X-BRIDGE-AC': 'john.doe'})
response = Response()
response.status_code = 200
response.raw = StringIO('response')
self.expect(self.requests.request(
'get',
'http://127.0.0.1:9080/bar/remote/path/@@view',
params={'foo': 'bar http://localhost:8080/foo/ baz'},
headers={'X-BRIDGE-ORIGIN': 'foo',
'X-BRIDGE-AC': 'john.doe'})).result(
response)
self.mocker.replay()
proxy = queryAdapter(request, IProxy)
response = proxy()
self.assertTrue(IResponse.providedBy(response))
self.assertEqual(response.status, '200 OK')
示例12: generate_fake_error_response
# 需要导入模块: from requests.models import Response [as 别名]
# 或者: from requests.models.Response import raw [as 别名]
def generate_fake_error_response(msg, status_code=401, encoding='utf-8'):
r = Response()
r.status_code = status_code
r.encoding = encoding
r.raw = RequestsStringIO(msg.encode())
r._content_consumed = True
r._content = r.raw.read()
return r
示例13: generate_fake_error_response
# 需要导入模块: from requests.models import Response [as 别名]
# 或者: from requests.models.Response import raw [as 别名]
def generate_fake_error_response(msg, status_code=401, encoding="utf-8"):
"""Generate a fake Response from requests."""
r = Response()
r.status_code = status_code
r.encoding = encoding
r.raw = RequestsStringIO(msg.encode())
r._content_consumed = True
r._content = r.raw.read()
return r
示例14: send
# 需要导入模块: from requests.models import Response [as 别名]
# 或者: from requests.models.Response import raw [as 别名]
def send(self, request, *args, **kwargs):
start = datetime.datetime.utcnow()
urlinfo = urlparse(request.url)
if not request.body:
data = b''
# requests>=2.11.0 makes request body a bytes object which no longer needs
# encoding
elif isinstance(request.body, bytes):
data = request.body
else:
data = request.body.encode('utf-8')
environ = {
'CONTENT_TYPE': request.headers.get('Content-Type', 'text/plain'),
'CONTENT_LENGTH': len(data),
'PATH_INFO': urlinfo.path,
'REQUEST_METHOD': request.method,
'SERVER_NAME': urlinfo.hostname,
'QUERY_STRING': urlinfo.query,
'SERVER_PORT': urlinfo.port or ('443' if urlinfo.scheme == 'https' else '80'),
'SERVER_PROTOCOL': self.server_protocol,
'wsgi.version': self.wsgi_version,
'wsgi.url_scheme': urlinfo.scheme,
'wsgi.input': Content(data),
'wsgi.errors': self.errors,
'wsgi.multiprocess': self.multiprocess,
'wsgi.multithread': self.multithread,
'wsgi.run_once': self.run_once,
'wsgi.url_scheme': urlinfo.scheme,
}
environ.update(dict(
('HTTP_{0}'.format(name).replace('-', '_').upper(), value)
for name, value in request.headers.items()
))
response = Response()
def start_response(status, headers):
response.status_code = int(status.split(' ')[0])
response.reason = responses.get(response.status_code, 'Unknown Status Code')
response.headers = CaseInsensitiveDict(headers)
response.encoding = get_encoding_from_headers(response.headers)
response.elapsed = datetime.datetime.utcnow() - start
self._log(response)
response.request = request
response.url = request.url
response.raw = Content(b''.join(self.app(environ, start_response)))
return response
示例15: test_execute_empty_result
# 需要导入模块: from requests.models import Response [as 别名]
# 或者: from requests.models.Response import raw [as 别名]
def test_execute_empty_result(self, requests_post_mock):
response = Response()
response.status_code = 200
response.raw = BytesIO(b'[]')
requests_post_mock.return_value = response
cursor = Cursor('http://example.com/')
cursor.execute('SELECT * FROM table')
result = cursor.fetchall()
expected = []
self.assertEquals(result, expected)