如何在调用POST前用Python Requests库预先建立REST连接?
如何提前建立requests连接以减少POST请求耗时?
我希望使用Python的requests库先建立REST连接,再基于该已建立的连接单独发起POST请求。
最初我采用如下代码:
import requests session = requests.Session() # 从此处开始计时 response = session.post("full url", headers={"header" : "header value"}) # 响应包含时间戳
但我很快意识到,由于Session()不接收URL,连接肯定是由post()创建的。我了解到,当连接已建立时,到接收端的网络延迟约为95ms,但上述请求耗时约200ms。
为了在调用post()前创建连接,我参考相关方案后写出第二次尝试的代码:
import requests import time import urllib.request from requests import Session from urllib.parse import urljoin class LiveServerSession(Session): def __init__(self, base_url=None): super().__init__() self.base_url = base_url def request(self, method, url, *args, **kwargs): joined_url = urljoin(self.base_url, url) return super().request(method, joined_url, *args, **kwargs) if __name__ == "__main__": baseUrl = "https://api.domain.com" with LiveServerSession(baseUrl) as session: # 此时连接应该已建立? # 从此处开始计时 response = session.post(baseUrl + "my sub url", headers={"header" : "header value"})
然而,该请求仍耗时约196ms。我是否使用方式有误?我只想在调用post()前就建立好连接。
内容的提问来源于stack exchange,提问作者intrigued_66
相关产品推荐
相关产品推荐

