解释python requests包的timeout

news/2024/9/28 21:27:40/

python_requeststimeout_0">解释python requests包的timeout

哈哈哈。。。。垃圾python又来了

1 问题

你能看懂下面两个timeout的含义就不用看下面的内容了。

requests.get('http://example.com', timeout=(2, 5))
requests.get('http://127.0.0.1:5000/api',timeout=1)
  • 官网解释!!!
    在这里插入图片描述

  • requests的入门文章

2 结论

  1. 一个参数:requests.get('http://127.0.0.1:5000/api',timeout=1)连接或者读超时的时间,也就是timeout=(1, 1)
  2. 两个参数:requests.get('http://example.com', timeout=(2, 5))连接超时的时间2s,读超时时间5s。

2.1 ConnectTimeout-连接https://hub.docker.com/超时的案例

>>> requests.get('https://hub.docker.com/',timeout=1)
Traceback (most recent call last):File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connection.py", line 198, in _new_connsock = connection.create_connection(^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/util/connection.py", line 85, in create_connectionraise errFile "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/util/connection.py", line 73, in create_connectionsock.connect(sa)
TimeoutError: timed outThe above exception was the direct cause of the following exception:Traceback (most recent call last):File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connectionpool.py", line 793, in urlopenresponse = self._make_request(^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connectionpool.py", line 491, in _make_requestraise new_eFile "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connectionpool.py", line 467, in _make_requestself._validate_conn(conn)File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connectionpool.py", line 1099, in _validate_connconn.connect()File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connection.py", line 616, in connectself.sock = sock = self._new_conn()^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connection.py", line 207, in _new_connraise ConnectTimeoutError(
urllib3.exceptions.ConnectTimeoutError: (<urllib3.connection.HTTPSConnection object at 0x1065f8bc0>, 'Connection to hub.docker.com timed out. (connect timeout=1)')The above exception was the direct cause of the following exception:Traceback (most recent call last):File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/adapters.py", line 486, in sendresp = conn.urlopen(^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connectionpool.py", line 847, in urlopenretries = retries.increment(^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/util/retry.py", line 515, in incrementraise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='hub.docker.com', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x1065f8bc0>, 'Connection to hub.docker.com timed out. (connect timeout=1)'))During handling of the above exception, another exception occurred:Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/api.py", line 73, in getreturn request("get", url, params=params, **kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/api.py", line 59, in requestreturn session.request(method=method, url=url, **kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/sessions.py", line 589, in requestresp = self.send(prep, **send_kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/sessions.py", line 703, in sendr = adapter.send(request, **kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/adapters.py", line 507, in sendraise ConnectTimeout(e, request=request)
requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='hub.docker.com', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x1065f8bc0>, 'Connection to hub.docker.com timed out. (connect timeout=1)'))
>>> 

2.2 ReadTimeout-读超时的案例

(base)  ~/ cat python ss.py 
cat: python: No such file or directory
from flask import Flask, request, jsonify
import time
app = Flask(__name__)@app.route('/api', methods=['POST','GET'])
def api():time.sleep(2)# 在这里处理数据,例如:result = {'message': 'Hello, World!'}return jsonify(result)if __name__ == '__main__':app.run(debug=True)(base)  ~/ cat ss.py
from flask import Flask, request, jsonify
import time
app = Flask(__name__)@app.route('/api', methods=['POST','GET'])
def api():time.sleep(2)# 在这里处理数据,例如:result = {'message': 'Hello, World!'}return jsonify(result)if __name__ == '__main__':app.run(debug=True)(base)  ~/ 
(base)  ~/ 
(base)  ~/ 
(base)  ~/ python ss.py* Serving Flask app 'ss'* Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.* Running on http://127.0.0.1:5000
Press CTRL+C to quit* Restarting with stat* Debugger is active!* Debugger PIN: 118-547-680
127.0.0.1 - - [25/Sep/2024 19:03:55] "GET /api HTTP/1.1" 200 -
127.0.0.1 - - [25/Sep/2024 19:04:05] "GET /api HTTP/1.1" 200 -
>>> requests.get('http://127.0.0.1:5000/api',timeout=1)
Traceback (most recent call last):File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connectionpool.py", line 537, in _make_requestresponse = conn.getresponse()^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connection.py", line 466, in getresponsehttplib_response = super().getresponse()^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/http/client.py", line 1428, in getresponseresponse.begin()File "/Users/admin/miniforge3/lib/python3.12/http/client.py", line 331, in beginversion, status, reason = self._read_status()^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/http/client.py", line 292, in _read_statusline = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/socket.py", line 707, in readintoreturn self._sock.recv_into(b)^^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: timed outThe above exception was the direct cause of the following exception:Traceback (most recent call last):File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/adapters.py", line 486, in sendresp = conn.urlopen(^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connectionpool.py", line 847, in urlopenretries = retries.increment(^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/util/retry.py", line 470, in incrementraise reraise(type(error), error, _stacktrace)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/util/util.py", line 39, in reraiseraise valueFile "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connectionpool.py", line 793, in urlopenresponse = self._make_request(^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connectionpool.py", line 539, in _make_requestself._raise_timeout(err=e, url=url, timeout_value=read_timeout)File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connectionpool.py", line 370, in _raise_timeoutraise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='127.0.0.1', port=5000): Read timed out. (read timeout=1)During handling of the above exception, another exception occurred:Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/api.py", line 73, in getreturn request("get", url, params=params, **kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/api.py", line 59, in requestreturn session.request(method=method, url=url, **kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/sessions.py", line 589, in requestresp = self.send(prep, **send_kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/sessions.py", line 703, in sendr = adapter.send(request, **kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/adapters.py", line 532, in sendraise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPConnectionPool(host='127.0.0.1', port=5000): Read timed out. (read timeout=1)>>> 

2.3 读超时

>>> requests.get('http://127.0.0.1:5000/api',timeout=(1, 1))
Traceback (most recent call last):File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connectionpool.py", line 537, in _make_requestresponse = conn.getresponse()^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connection.py", line 466, in getresponsehttplib_response = super().getresponse()^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/http/client.py", line 1428, in getresponseresponse.begin()File "/Users/admin/miniforge3/lib/python3.12/http/client.py", line 331, in beginversion, status, reason = self._read_status()^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/http/client.py", line 292, in _read_statusline = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/socket.py", line 707, in readintoreturn self._sock.recv_into(b)^^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: timed outThe above exception was the direct cause of the following exception:Traceback (most recent call last):File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/adapters.py", line 486, in sendresp = conn.urlopen(^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connectionpool.py", line 847, in urlopenretries = retries.increment(^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/util/retry.py", line 470, in incrementraise reraise(type(error), error, _stacktrace)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/util/util.py", line 39, in reraiseraise valueFile "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connectionpool.py", line 793, in urlopenresponse = self._make_request(^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connectionpool.py", line 539, in _make_requestself._raise_timeout(err=e, url=url, timeout_value=read_timeout)File "/Users/admin/miniforge3/lib/python3.12/site-packages/urllib3/connectionpool.py", line 370, in _raise_timeoutraise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='127.0.0.1', port=5000): Read timed out. (read timeout=1)During handling of the above exception, another exception occurred:Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/api.py", line 73, in getreturn request("get", url, params=params, **kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/api.py", line 59, in requestreturn session.request(method=method, url=url, **kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/sessions.py", line 589, in requestresp = self.send(prep, **send_kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/sessions.py", line 703, in sendr = adapter.send(request, **kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/admin/miniforge3/lib/python3.12/site-packages/requests/adapters.py", line 532, in sendraise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPConnectionPool(host='127.0.0.1', port=5000): Read timed out. (read timeout=1)
>>> 
>>> 
>>> 
>>> 

2.4 不超时

>>> 
>>> requests.get('http://127.0.0.1:5000/api',timeout=(1, 2.1))
<Response [200]>
>>> 
>>> requests.get('http://127.0.0.1:5000/api',timeout=2.1)
<Response [200]>
>>> 
>>> print(requests.get('http://127.0.0.1:5000/api',timeout=2.1).json())
{'message': 'Hello, World!'}
>>> 

http://www.ppmy.cn/news/1530643.html

相关文章

【学术会议征稿】第四届人工智能、机器人和通信国际会议(ICAIRC 2024)

第四届人工智能、机器人和通信国际会议&#xff08;ICAIRC 2024&#xff09; 2024 4th International Conference on Artificial Intelligence, Robotics, and Communication 第四届人工智能、机器人和通信国际会议&#xff08;ICAIRC 2024&#xff09;定于2024年12月27-29日…

2025考研倒计时 考研时间公布了 你准备好复习冲刺了吗?

2025考研倒计时 考研时间公布了 你准备好复习冲刺了吗&#xff1f;今年的考研时间终于公布了&#xff1a; 正式报名时间2024.10.15-2024.10.28&#xff0c;初试时间12月21日&#xff0c;相信很多学子们已经做好冲刺的准备了。 在这关键的90天的时间内&#xff0c;如何做到时刻…

运行python程序

1 终端运行 1.1、直接在python解释器中书写代码 >>> print(法外狂徒) 法外狂徒 …

kubernetes K8S 挂载分布式存储 ceph

目录 一、Ceph简介 二、Ceph核心组件介绍 三、安装Ceph集群 1初始化实验环境 1.1、配置静态IP&#xff1a; 1.2、配置主机名&#xff1a; 1.3、配置hosts文件&#xff1a; 1.4、配置互信 1.5、关闭防火墙 1.6、关闭selinux 1.7、配置Ceph安装源 1.8、配置时间同步 …

神经网络(五):U2Net模型

文章目录 一、网络结构1.1第一种block结构1.2第二种block结构1.3特征图融合1.4损失函数1.5总体网络架构1.6代码汇总1.7普通残差块与RSU对比 二、代码复现 参考论文&#xff1a;U2-Net: Going deeper with nested U-structure for salient object detection   这篇文章基于显著…

C语言 | Leetcode C语言题解之第437题路径总和III

题目&#xff1a; 题解&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ //递归遍历树节点&#xff0c;判断是否为有效路径 int dfs(struct TreeNode * root, int ta…

ubuntu20.04.6 触摸屏一体机,外接视频流盒子开机输入登录密码触屏失灵问题解决方法

1. 首先直接运行xrandr命令&#xff0c;查看设备的相关信息&#xff1a; 运行之后会显示当前连接设备的屏幕信息&#xff0c;如下图&#xff0c;LVDS和VGA-0&#xff0c;而HDMI屏幕为disconnect&#xff0c;意为没有连接&#xff1a; 2. 设置开机主屏幕显示&#xff1a; xrand…

用于多模态MRI重建的具有空间对齐的深度展开网络|文献速递--基于多模态-半监督深度学习的病理学诊断与病灶分割

Title 题目 Deep unfolding network with spatial alignment for multi-modal MRI reconstruction 用于多模态MRI重建的具有空间对齐的深度展开网络 01 文献速递介绍 磁共振成像&#xff08;MRI&#xff09;因其无创性、高分辨率和显著的软组织对比度&#xff0c;已成为广…