您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用Python请求时如何获取基础套接字

使用Python请求时如何获取基础套接字

对于流连接(使用stream=True参数打开的连接),可以.raw.fileno()在响应对象上调用方法获取打开的文件描述符。

您可以使用该socket.fromfd(...)方法从描述符创建Python套接字对象:

>>> import requests
>>> import socket
>>> r = requests.get('http://google.com/', stream=True)
>>> s = socket.fromfd(r.raw.fileno(), socket.AF_INET, socket.soCK_STREAM)
>>> s.getpeername()
('74.125.226.49', 80)
>>> s.getsockname()
('192.168.1.60', 41323)

对于非流套接字,将在返回响应对象之前清理文件描述符。据我所知,在这种情况下没有办法。

python 2022/1/1 18:34:37 有346人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶