欢迎访问宙启技术站
智能推送

Python中基于Timeout()的网络请求:如何设置超时时间

发布时间:2024-01-05 10:25:39

在Python中,我们可以使用requests库来发送网络请求。requests库提供了一个timeout参数,可以设置超时时间。

timeout参数接受一个浮点数或一个元组,表示网络请求的超时时间。如果timeout为浮点数,表示等待的最长时间(以秒为单位)。如果timeout为元组,表示连接和读取超时时间,分别指定connect和read的最长时间。

以下是一个使用timeout参数的例子:

import requests

# 设置超时时间为5秒
timeout = 5

try:
    response = requests.get('https://www.example.com', timeout=timeout)
    # 在指定的超时时间内请求成功
    print(response.text)
except requests.exceptions.Timeout:
    # 超时异常处理
    print("Request timed out")

在上面的例子中,我们设置超时时间为5秒。如果请求在5秒内成功完成,我们将打印出返回的文本内容。如果请求超过了5秒仍未完成,requests库会引发一个Timeout异常,并打印出"Request timed out"。

除了设置全局的超时时间,我们还可以为每个请求单独设置超时时间。以下是一个单独设置超时时间的例子:

import requests

try:
    # 设置连接超时时间为2秒,读取超时时间为5秒
    timeout = (2, 5)
    response = requests.get('https://www.example.com', timeout=timeout)
    print(response.text)
except requests.exceptions.Timeout:
    print("Request timed out")

在这个例子中,我们将连接超时时间设置为2秒,读取超时时间设置为5秒。如果在2秒内无法建立连接,或者在建立连接后的5秒内无法读取完整的响应,requests库会引发一个Timeout异常。

总结:在Python中,我们可以使用requests库的timeout参数来设置网络请求的超时时间。timeout参数可以是一个浮点数或一个元组,分别表示等待的最长时间或连接和读取超时时间。要注意处理Timeout异常,以避免程序阻塞或出现超时错误。