【问题标题】:Python - How to workaround web server connection limitPython - 如何解决 Web 服务器连接限制
【发布时间】:2018-12-04 13:05:38
【问题描述】:

我有一个带有网络服务器的加热系统,我想从这个网络服务器读取数据。问题在于 Web 服务器的限制 - 最大。连接数为 6。我编写了一些简单的脚本来获取 XML(供暖系统基于 XML)。该脚本运行良好,但每分钟只能调用 6 次。我尝试在获取数据后强制 Python 关闭连接,但连接保持打开状态。

您知道如何强制远程 Web 服务器关闭连接吗?

我的简化代码:

import requests
from pprint import pprint

s = requests
s.keep_alive = False
link1 = "http://some_ip/TOP1.XML"
f = s.get(link1, headers={'Connection':'close', "Timeout":"5000"})
pprint(vars(f))

【问题讨论】:

    标签: python webserver


    【解决方案1】:

    来自请求docs

    ( ... ) 因此,如果您向同一主机发出多个请求,则会重用底层 TCP 连接,从而显着提高性能(请参阅 HTTP 持久连接)。

    我会尝试使用会话对象并重用 TCP 连接。

    s = requests.Session()
    s.get(url)
    

    您可能想了解keep-alive

    【讨论】:

    • 谢谢,request.Session 是正确的方式。这不会关闭连接,但我可以批量调用更多获取请求并仅获取一个连接(用于更多请求)。这解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    相关资源
    最近更新 更多