1
- from .cffi import request , freeMemory , destroySession
2
- from .cookies import cookiejar_from_dict , merge_cookies , extract_cookies_to_jar
3
- from .exceptions import TLSClientExeption
4
- from .response import build_response , Response
5
- from .settings import ClientIdentifiers
6
- from .structures import CaseInsensitiveDict
7
- from .__version__ import __version__
8
-
9
- from typing import Any , Dict , List , Optional , Union
10
- from json import dumps , loads
11
- import urllib .parse
1
+ import asyncio
12
2
import base64
13
3
import ctypes
4
+ import urllib .parse
14
5
import uuid
15
- import asyncio
6
+ from json import dumps , loads
7
+ from typing import Any , Dict , List , Optional , Union
8
+
9
+ from .cffi import destroySession , freeMemory , request
10
+ from .cookies import cookiejar_from_dict , extract_cookies_to_jar , merge_cookies
11
+ from .exceptions import TLSClientExeption
12
+ from .response import Response , build_response
13
+ from .settings import ClientIdentifiers
14
+ from .structures import CaseInsensitiveDict
16
15
17
16
18
17
class AsyncSession :
@@ -41,27 +40,27 @@ class AsyncSession:
41
40
"""
42
41
43
42
def __init__ (
44
- self ,
45
- client_identifier : ClientIdentifiers = "chrome_120" ,
46
- ja3_string : Optional [str ] = None ,
47
- h2_settings : Optional [Dict [str , int ]] = None ,
48
- h2_settings_order : Optional [List [str ]] = None ,
49
- supported_signature_algorithms : Optional [List [str ]] = None ,
50
- supported_delegated_credentials_algorithms : Optional [List [str ]] = None ,
51
- supported_versions : Optional [List [str ]] = None ,
52
- key_share_curves : Optional [List [str ]] = None ,
53
- cert_compression_algo : str = None ,
54
- additional_decode : str = None ,
55
- pseudo_header_order : Optional [List [str ]] = None ,
56
- connection_flow : Optional [int ] = None ,
57
- priority_frames : Optional [list ] = None ,
58
- header_order : Optional [List [str ]] = None ,
59
- header_priority : Optional [List [str ]] = None ,
60
- random_tls_extension_order : Optional [bool ] = False ,
61
- force_http1 : Optional [bool ] = False ,
62
- catch_panics : Optional [bool ] = False ,
63
- debug : Optional [bool ] = False ,
64
- certificate_pinning : Optional [Dict [str , List [str ]]] = None ,
43
+ self ,
44
+ client_identifier : ClientIdentifiers = "chrome_120" ,
45
+ ja3_string : Optional [str ] = None ,
46
+ h2_settings : Optional [Dict [str , int ]] = None ,
47
+ h2_settings_order : Optional [List [str ]] = None ,
48
+ supported_signature_algorithms : Optional [List [str ]] = None ,
49
+ supported_delegated_credentials_algorithms : Optional [List [str ]] = None ,
50
+ supported_versions : Optional [List [str ]] = None ,
51
+ key_share_curves : Optional [List [str ]] = None ,
52
+ cert_compression_algo : str = None ,
53
+ additional_decode : str = None ,
54
+ pseudo_header_order : Optional [List [str ]] = None ,
55
+ connection_flow : Optional [int ] = None ,
56
+ priority_frames : Optional [list ] = None ,
57
+ header_order : Optional [List [str ]] = None ,
58
+ header_priority : Optional [List [str ]] = None ,
59
+ random_tls_extension_order : Optional [bool ] = False ,
60
+ force_http1 : Optional [bool ] = False ,
61
+ catch_panics : Optional [bool ] = False ,
62
+ debug : Optional [bool ] = False ,
63
+ certificate_pinning : Optional [Dict [str , List [str ]]] = None ,
65
64
) -> None :
66
65
"""
67
66
Initializes the AsyncSession with various HTTP and TLS parameters.
@@ -307,18 +306,18 @@ async def close(self) -> str:
307
306
return destroy_session_response_string
308
307
309
308
async def execute_request (
310
- self ,
311
- method : str ,
312
- url : str ,
313
- params : Optional [dict ] = None ,
314
- data : Optional [Union [str , dict ]] = None ,
315
- headers : Optional [dict ] = None ,
316
- cookies : Optional [dict ] = None ,
317
- json : Optional [dict ] = None ,
318
- allow_redirects : Optional [bool ] = False ,
319
- insecure_skip_verify : Optional [bool ] = False ,
320
- timeout_seconds : Optional [int ] = None ,
321
- proxy : Optional [dict ] = None
309
+ self ,
310
+ method : str ,
311
+ url : str ,
312
+ params : Optional [dict ] = None ,
313
+ data : Optional [Union [str , dict ]] = None ,
314
+ headers : Optional [dict ] = None ,
315
+ cookies : Optional [dict ] = None ,
316
+ json : Optional [dict ] = None ,
317
+ allow_redirects : Optional [bool ] = False ,
318
+ insecure_skip_verify : Optional [bool ] = False ,
319
+ timeout_seconds : Optional [int ] = None ,
320
+ proxy : Optional [dict ] = None
322
321
) -> Response :
323
322
"""
324
323
Executes an HTTP request using the Go-based TLS client in a separate thread.
@@ -358,6 +357,7 @@ async def execute_request(
358
357
Raises:
359
358
TLSClientExeption: If the underlying Go client returns a status code of 0 (error).
360
359
"""
360
+
361
361
def build_payload ():
362
362
# Prepare URL - add params to url
363
363
final_url = url
@@ -531,11 +531,11 @@ async def head(self, url: str, **kwargs: Any) -> Response:
531
531
return await self .execute_request (method = "HEAD" , url = url , ** kwargs )
532
532
533
533
async def post (
534
- self ,
535
- url : str ,
536
- data : Optional [Union [str , dict ]] = None ,
537
- json : Optional [dict ] = None ,
538
- ** kwargs : Any
534
+ self ,
535
+ url : str ,
536
+ data : Optional [Union [str , dict ]] = None ,
537
+ json : Optional [dict ] = None ,
538
+ ** kwargs : Any
539
539
) -> Response :
540
540
"""
541
541
Sends an asynchronous POST request.
@@ -556,11 +556,11 @@ async def post(
556
556
return await self .execute_request (method = "POST" , url = url , data = data , json = json , ** kwargs )
557
557
558
558
async def put (
559
- self ,
560
- url : str ,
561
- data : Optional [Union [str , dict ]] = None ,
562
- json : Optional [dict ] = None ,
563
- ** kwargs : Any
559
+ self ,
560
+ url : str ,
561
+ data : Optional [Union [str , dict ]] = None ,
562
+ json : Optional [dict ] = None ,
563
+ ** kwargs : Any
564
564
) -> Response :
565
565
"""
566
566
Sends an asynchronous PUT request.
@@ -581,11 +581,11 @@ async def put(
581
581
return await self .execute_request (method = "PUT" , url = url , data = data , json = json , ** kwargs )
582
582
583
583
async def patch (
584
- self ,
585
- url : str ,
586
- data : Optional [Union [str , dict ]] = None ,
587
- json : Optional [dict ] = None ,
588
- ** kwargs : Any
584
+ self ,
585
+ url : str ,
586
+ data : Optional [Union [str , dict ]] = None ,
587
+ json : Optional [dict ] = None ,
588
+ ** kwargs : Any
589
589
) -> Response :
590
590
"""
591
591
Sends an asynchronous PATCH request.
0 commit comments