首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python请求使用keep-alive加速

Python请求使用keep-alive加速
EN

Stack Overflow用户
提问于 2014-08-11 17:11:25
回答 1查看 70.1K关注 0票数 78

在HTTP协议中,您可以使用keep-alive在一个套接字中发送多个请求,然后立即接收来自服务器的响应,这将大大加快整个过程。有没有办法在python request lib中做到这一点?或者有没有其他方法可以使用requests lib很好地加速这个过程?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-11 17:26:16

是的,有。使用requests.Sessionit will do keep-alive by default

我想我应该举个简单的例子:

代码语言:javascript
复制
import logging
import requests

logging.basicConfig(level=logging.DEBUG)
s = requests.Session()
s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
s.get('http://httpbin.org/cookies/set/anothercookie/123456789')
r = s.get("http://httpbin.org/cookies")
print(r.text)

您将注意到出现这些日志消息

代码语言:javascript
复制
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): httpbin.org
DEBUG:requests.packages.urllib3.connectionpool:"GET /cookies/set/sessioncookie/123456789 HTTP/1.1" 302 223
DEBUG:requests.packages.urllib3.connectionpool:"GET /cookies HTTP/1.1" 200 55
DEBUG:requests.packages.urllib3.connectionpool:"GET /cookies/set/anothercookie/123456789 HTTP/1.1" 302 223
DEBUG:requests.packages.urllib3.connectionpool:"GET /cookies HTTP/1.1" 200 90
DEBUG:requests.packages.urllib3.connectionpool:"GET /cookies HTTP/1.1" 200 90

如果您稍等片刻,然后重复上一次get调用

代码语言:javascript
复制
INFO:requests.packages.urllib3.connectionpool:Resetting dropped connection: httpbin.org
DEBUG:requests.packages.urllib3.connectionpool:"GET /cookies HTTP/1.1" 200 90

请注意,它将重置丢弃的连接,即重新建立到服务器的连接以发出新请求。

票数 139
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25239650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档