較新版本的urllib3
(自1.8.3,發佈於2014-06-23)支持設置套接字選項。
您可以通過創建自定義適配器設置從requests
這些選項(自2.4.0發佈2014年8月29日):
class HTTPAdapterWithSocketOptions(requests.adapters.HTTPAdapter):
def __init__(self, *args, **kwargs):
self.socket_options = kwargs.pop("socket_options", None)
super(HTTPAdapterWithSocketOptions, self).__init__(*args, **kwargs)
def init_poolmanager(self, *args, **kwargs):
if self.socket_options is not None:
kwargs["socket_options"] = self.socket_options
super(HTTPAdapterWithSocketOptions, self).init_poolmanager(*args, **kwargs)
然後你可以將此適配器安裝到需要自定義套接字會議選項(例如設置SO_KEEPALIVE
):
adapter = HTTPAdapterWithSocketOptions(socket_options=[(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)])
s = requests.session()
s.mount("http://", adapter)
s.mount("https://", adapter)
讓我猜:azure? – Dacav 2015-10-30 11:21:43