You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

加载本地网页到PySide2时出现ERR_TOO_MANY_RETRIES错误求解决方案

解决PySide2加载本地网站出现ERR_TOO_MANY_RETRIES的方案

排查本地服务状态

  • 先确认本地SQL网站对应的服务器(如Apache、Nginx或开发内置服务器)是否正常运行,直接在浏览器输入相同URL测试,能正常访问再回到PySide2中尝试。
  • 检查本地服务的端口是否被其他程序占用,用netstat -ano(Windows)或lsof -i :端口号(Linux/macOS)命令查看端口占用情况,若被占用则更换端口或关闭占用程序。

调整PySide2的WebEngine设置

  • 禁用缓存重试机制:初始化QWebEngineView前,配置QWebEngineSettings关闭缓存相关选项,避免重复请求累积。示例代码:
from PySide2.QtWebEngineWidgets import QWebEngineView, QWebEngineSettings

web_view = QWebEngineView()
settings = web_view.settings()
settings.setAttribute(QWebEngineSettings.LocalStorageEnabled, False)
settings.setAttribute(QWebEngineSettings.OfflineStorageEnabled, False)
  • 手动设置请求头:给WebEngine页面添加自定义请求头,避免被服务器判定为重复请求。示例:
def add_custom_headers(request):
    request.setRawHeader(b"Cache-Control", b"no-cache")
    request.setRawHeader(b"Pragma", b"no-cache")

web_view.page().profile().setRequestInterceptor(add_custom_headers)

检查URL解析与本地路径处理

  • 如果是本地文件而非HTTP服务,直接用QUrl.fromLocalFile()替代fromUserInput,比如加载本地HTML文件:
from PySide2.QtCore import QUrl

local_path = "/path/to/your/local/sql-website/index.html"
web_view.load(QUrl.fromLocalFile(local_path))
  • 确保URL中没有特殊字符或空格,若有则用QUrl.toEncoded()处理后再加载:
url = QUrl.fromUserInput("http://localhost:8080/sql-report")
encoded_url = url.toEncoded()
web_view.load(encoded_url)

重置PySide2 WebEngine的配置

  • 删除WebEngine的缓存目录,默认缓存路径在系统用户目录下的QtWebEngine文件夹(比如Windows的C:\Users\用户名\AppData\Local\QtProject\QtWebEngine),删除后重启应用,避免旧缓存导致的重试问题。

内容的提问来源于stack exchange,提问作者Thatmemphiskid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 14:30:41