android - WebView:状态码 404,即使页面在浏览器中加载正常
问题描述
我的应用程序中有一个 WebView,我在其中覆盖了以下方法,每当出现错误 404 时,我都会加载不同的 url-
public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
super.onReceivedHttpError(view, request, errorResponse);
//load another url
}
我面临的问题是第一个 url 返回 404,然后在这个块中加载第二个 url。
但是即使页面存在并且在浏览器上运行良好,这个块也会被一次又一次地调用。
我从这个答案中找到了一些提示,但不明白如何处理它。有没有办法知道当整个网页未找到或网页中的某些元素未找到时收到状态码 404。
解决方案
就像这个答案中提到的 - Android WebView : onreceivedHttpError statusCode == 404。将为任何资源(iframe、图像等)调用 onReceivedHttpError 回调,而不仅仅是主页。因此,建议在此回调中执行所需的最少工作。我只是删除了这个回调,我的应用程序现在运行良好。
推荐阅读
- sql - 计算 this.row 与另一个表中的行相关的总行数
- mysql - 使用内部连接 3 个表和 where 子句查询选择
- nginx - 多个 nginx 子域导致单个码头实例
- excel - 如何让我的 VBA 代码遍历工作簿中的所有工作表?
- python - 在 Python 中分箱数据并计算每个箱的 MAE
- ios - 为调试模式禁用断言
- python - 仅将新值从 Python 中的 DataFrame 附加到 CSV
- apache-spark - 更方便的方式来重现 pyspark 样本
- java - 如何从托管在 Pivotal Cloud Foundry 中的 Java 应用程序访问 Windows NAS 文件共享
- android - 在 Android 上离线安装 GoogleTTS 语音