Response.protocol attribute

This commit is contained in:
Eugenio Lacuesta 2020-09-29 23:53:37 -03:00
parent c20b34269f
commit 99cc853d69
No known key found for this signature in database
GPG Key ID: DA3EF2D0913E9810
2 changed files with 15 additions and 3 deletions

View File

@ -442,6 +442,7 @@ class ScrapyAgent:
flags=result["flags"],
certificate=result["certificate"],
ip_address=result["ip_address"],
protocol=getattr(result["txresponse"], "version", None),
)
if result.get("failure"):
result["failure"].value.response = response

View File

@ -17,8 +17,18 @@ from scrapy.utils.trackref import object_ref
class Response(object_ref):
def __init__(self, url, status=200, headers=None, body=b'', flags=None,
request=None, certificate=None, ip_address=None):
def __init__(
self,
url,
status=200,
headers=None,
body=b"",
flags=None,
request=None,
certificate=None,
ip_address=None,
protocol=None,
):
self.headers = Headers(headers or {})
self.status = int(status)
self._set_body(body)
@ -27,6 +37,7 @@ class Response(object_ref):
self.flags = [] if flags is None else list(flags)
self.certificate = certificate
self.ip_address = ip_address
self.protocol = protocol
@property
def cb_kwargs(self):
@ -90,7 +101,7 @@ class Response(object_ref):
given new values.
"""
for x in ['url', 'status', 'headers', 'body',
'request', 'flags', 'certificate', 'ip_address']:
'request', 'flags', 'certificate', 'ip_address', 'protocol']:
kwargs.setdefault(x, getattr(self, x))
cls = kwargs.pop('cls', self.__class__)
return cls(*args, **kwargs)