Android webview onReceivedError() 在网页响应错误状态时未调用.如果 webview 尝



onReceivedError((,但如果服务器/网站选择以错误状态(例如状态 500(响应,则不会调用它。

# Django returning status 500
return HttpResponseServerError("returned status 500")

此响应会显示在状态为 500 的常规 Chrome 浏览器中。但是,Web 视图只是加载它,从不调用 onReceivedError((。

应用程序/Web 视图如何判断服务器是否正在发回错误状态?我需要像处理任何错误一样处理它。

谢谢!

看看这里 Android 开发者 WebViewClient.

您可以在此处阅读有关ReivedError上的哪些错误正在响应的信息。HTML 错误 500(内部服务器错误不在其中(。此外,从版本 23 开始不推荐使用接收错误。您可以在前一个链接中阅读所有内容。

我很快环顾四周,发现了更多关于如何获取http错误的问题,大多数答案都是否定的。

因此,也许您可以通过使用HttpURLConnection测试网站并使用getResponseCode方法来获取服务器的状态。例如,您可以在服务器上放置一个小文件,然后尝试使用HttpURLConnection获取此小文件。如果存在内部服务器错误,您将收到 500 错误作为响应。然后你可以随心所欲地处理事情。

我知道这不是最优雅的答案,但正如我所说,也许你可以使用某种技巧。