1- from typing import Optional
1+ from typing import Any , Dict , Optional , Union
22
33import requests
4+ from requests_toolbelt .multipart .encoder import MultipartEncoder # type: ignore
45
56
67class RequestsBackend :
@@ -10,3 +11,43 @@ def __init__(self, session: Optional[requests.Session] = None) -> None:
1011 @property
1112 def client (self ) -> requests .Session :
1213 return self ._client
14+
15+ def http_request (
16+ self ,
17+ method : str ,
18+ url : str ,
19+ json : Optional [Union [Dict [str , Any ], bytes ]] = None ,
20+ data : Optional [Union [Dict [str , Any ], MultipartEncoder ]] = None ,
21+ params : Optional [Any ] = None ,
22+ timeout : Optional [float ] = None ,
23+ verify : Optional [Union [bool , str ]] = True ,
24+ stream : Optional [bool ] = False ,
25+ ** kwargs : Any
26+ ) -> requests .Response :
27+ """Make HTTP request
28+
29+ Args:
30+ method: The HTTP method to call ('get', 'post', 'put', 'delete', etc.)
31+ url: The full URL
32+ data: The data to send to the server in the body of the request
33+ json: Data to send in the body in json by default
34+ timeout: The timeout, in seconds, for the request
35+ verify: Whether SSL certificates should be validated. If
36+ the value is a string, it is the path to a CA file used for
37+ certificate validation.
38+ stream: Whether the data should be streamed
39+
40+ Returns:
41+ A requests Response object.
42+ """
43+ return self ._client .request (
44+ method = method ,
45+ url = url ,
46+ params = params ,
47+ data = data ,
48+ timeout = timeout ,
49+ stream = stream ,
50+ verify = verify ,
51+ json = json ,
52+ ** kwargs
53+ )
0 commit comments