对于流连接(使用
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)
对于非流套接字,将在返回响应对象之前清理文件描述符。据我所知,在这种情况下没有办法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)