本文目录导读:

针对 HTTP 请求中的 连接超时(connect timeout) 和 读取超时(read timeout),不同编程语言和库的配置方法略有不同,以下是常见场景的配置示例和最佳实践:
Python (requests 库)
import requests
try:
response = requests.get(
'https://example.com',
timeout=(3.05, 27) # (connect_timeout, read_timeout) 单位秒
)
except requests.exceptions.ConnectTimeout:
print("连接超时")
except requests.exceptions.ReadTimeout:
print("读取超时")
注意:requests 默认没有超时,务必设置。connect 建议 3-5 秒,read 建议 10-30 秒。
Go (net/http)
package main
import (
"net/http"
"time"
)
func main() {
client := &http.Client{
Timeout: 30 * time.Second, // 整体超时(含连接+读取)
Transport: &http.Transport{
DialContext: (&net.Dialer{
Timeout: 5 * time.Second, // 连接超时
}).DialContext,
ResponseHeaderTimeout: 10 * time.Second, // 读取响应头超时
},
}
resp, err := client.Get("https://example.com")
}
说明:Go 没有独立的 read timeout,需通过 ResponseHeaderTimeout + Timeout 组合控制。
Node.js (axios)
const axios = require('axios');
axios.get('https://example.com', {
timeout: 5000, // 全局超时(连接+读取)毫秒
// 或更细粒度控制(需自定义 adapter,不常用)
})
.then(response => console.log(response))
.catch(error => {
if (error.code === 'ECONNABORTED') {
console.log('请求超时');
}
});
注意:axios 不区分 connect/read 超时,统一使用 timeout,若需区分,可用 http 模块自行实现。
Java (OkHttp)
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(5, TimeUnit.SECONDS) // 连接超时
.readTimeout(10, TimeUnit.SECONDS) // 读取超时
.writeTimeout(10, TimeUnit.SECONDS) // 写入超时(可选)
.build();
Request request = new Request.Builder()
.url("https://example.com")
.build();
try (Response response = client.newCall(request).execute()) {
// 处理响应
} catch (SocketTimeoutException e) {
System.out.println("超时:" + e.getMessage());
}
curl 命令行
# 连接超时 5秒,整体传输超时 30秒 curl --connect-timeout 5 --max-time 30 https://example.com
参数说明:
--connect-timeout:连接建立超时(秒)--max-time:整个请求允许的最大时间(含传输)
最佳实践建议
| 场景 | 连接超时 | 读取超时 | 说明 |
|---|---|---|---|
| 内部API调用 | 2-3s | 10-15s | 网络稳定,快速失败 |
| 外部第三方API | 5-10s | 30-60s | 网络不可控,适当放宽 |
| 大文件下载 | 5-10s | 不设或很大 | 改用流式读取,单独控制 |
| 高并发场景 | 1-2s | 5-10s | 避免线程/连接池耗尽 |
通用原则:
- 连接超时:不要太短(避免假失败),也不要太长(浪费资源),3-10 秒
- 读取超时:根据接口响应速度设定,10-30 秒
- 考虑重试机制(带退避策略),但避免幂等操作重复执行
超时后的错误处理
# Python 示例:区分超时类型
try:
resp = requests.get('...', timeout=(3, 10))
except requests.exceptions.ConnectTimeout:
# 可能是DNS问题/网络不通
logging.error("连接失败,请检查网络")
except requests.exceptions.ReadTimeout:
# 服务端响应慢或死锁
logging.warning("服务响应超时,考虑重试")
如果需要特定语言的完整示例或解决超时问题(如 DNS 慢、TCP 握手延迟等),请提供更多上下文,我可以进一步细化建议。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播