roc*_*ket 5 python ssl python-requests
我正在尝试使用 TLS 1.3 在 Python 中发出请求,因为这是该网站接受的。我使用以下代码:
import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.poolmanager import PoolManager
from requests.packages.urllib3.util import ssl_
CIPHERS = (
'AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:AES256-SHA'
)
class TlsAdapter(HTTPAdapter):
def __init__(self, ssl_options=0, **kwargs):
self.ssl_options = ssl_options
super(TlsAdapter, self).__init__(**kwargs)
def init_poolmanager(self, *pool_args, **pool_kwargs):
ctx = ssl_.create_urllib3_context(ciphers=CIPHERS, cert_reqs=ssl.CERT_REQUIRED, options=self.ssl_options)
self.poolmanager = PoolManager(*pool_args,
ssl_context=ctx,
**pool_kwargs)
sess = requests.session()
adp = TlsAdapter(ssl.OP_NO_TLSv1_3 | ssl.OP_NO_TLSv1_3)
sess.mount("https://", adapter)
Run Code Online (Sandbox Code Playgroud)
直到这里一切看起来都很好。我开始使用它来发送请求 ecc,但出于纯粹的好奇心,我更深入地检查并使用了 Wireshark。这里说请求超过 1.2 而不是 1.3。
任何人都可以帮助我实际执行 1.3 而不是 1.2?我们将非常感激。谢谢。
小智 1
看起来你在最后一行犯了一个错字。用这个代替。
sess = requests.session()
adp = TlsAdapter(ssl.OP_NO_TLSv1_3 | ssl.OP_NO_TLSv1_3)
sess.mount("https://", adp) #adp instead of adapter
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11434 次 |
| 最近记录: |