4
4
from requests_toolbelt .multipart .encoder import MultipartEncoder # type: ignore
5
5
6
6
7
+ class RequestsResponse :
8
+ def __init__ (self , response : requests .Response ) -> None :
9
+ self ._response : requests .Response = response
10
+
11
+ @property
12
+ def response (self ) -> requests .Response :
13
+ return self ._response
14
+
15
+ @property
16
+ def status_code (self ) -> int :
17
+ return self ._response .status_code
18
+
19
+ @property
20
+ def headers (self ) -> Any :
21
+ return self ._response .headers
22
+
23
+ @property
24
+ def content (self ) -> bytes :
25
+ return self ._response .content
26
+
27
+ def json (self ) -> Any :
28
+ return self ._response .json ()
29
+
30
+
7
31
class RequestsBackend :
8
32
def __init__ (self , session : Optional [requests .Session ] = None ) -> None :
9
33
self ._client : requests .Session = session or requests .Session ()
@@ -23,7 +47,7 @@ def http_request(
23
47
verify : Optional [Union [bool , str ]] = True ,
24
48
stream : Optional [bool ] = False ,
25
49
** kwargs : Any
26
- ) -> requests . Response :
50
+ ) -> RequestsResponse :
27
51
"""Make HTTP request
28
52
29
53
Args:
@@ -40,7 +64,7 @@ def http_request(
40
64
Returns:
41
65
A requests Response object.
42
66
"""
43
- return self ._client .request (
67
+ response : requests . Response = self ._client .request (
44
68
method = method ,
45
69
url = url ,
46
70
params = params ,
@@ -51,3 +75,4 @@ def http_request(
51
75
json = json ,
52
76
** kwargs
53
77
)
78
+ return RequestsResponse (response = response )
0 commit comments