对于流连接(使用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)