安卓 - 获取在浏览器中打开的网页状态码

3
在桌面浏览器中,扩展程序可以轻松地获取在浏览器中打开的网页的状态码。我所说的状态码是指200、302、404、502等等... HTTP响应状态码

Response.status

现在假设我们有一个类似于桌面Chrome扩展的Android应用程序。该应用程序不是在WebView中打开URL链接,而是在Android浏览器中打开。
引用:
我的问题是,是否有一种方法可以通过Java在Android运行时程序中获得打开在Android浏览器中的网页的状态代码?
可能可以通过 Browser内容提供程序或 WebResourceResponse来获取这些内容,我正在研究这个问题。
我不是指获取在WebView中下载的页面的状态代码。已经有一个问题涵盖了这一点: Get HTTP Status Code in Android WebView
我的意思是获取在Android浏览器中打开的页面的状态代码。我们如何获得这些信息?
"

基于Web的内容

"

我知道这不是最好的方法,但简单的想法可能是编写一个VPN服务并捕获所有请求和响应。 - undefined
@MirMiladHosseiny 假设我们编写了这个Service,有没有办法知道哪个请求/响应属于加载它的前台浏览器所在的网页?因为很可能会同时发生多个请求/响应。 - undefined
据我所知,在VPN服务中,您可以获取特定的应用程序请求/响应。此外,您还可以获取前台应用程序并检查它是否是浏览器。 - undefined
1个回答

2

示例 1:

URL url = new URL("http://example.com");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
int code = connection.getResponseCode(); // show code result :)

这并不是一个完整的示例; 你需要处理IOExceptions等问题。但它可以帮助你开始。
如果你需要更多功能,请查看HttpClient示例2:
URL url = new URL("http://www.google.com/humans.txt");
HttpURLConnection http = (HttpURLConnection)url.openConnection();
int statusCode = http.getResponseCode(); // show result :)

好主意!感谢您抽出时间回复。然而,在我看来,这与从浏览器获取状态代码并不完全相同。那将是理想的情况:浏览器提供下载网页的状态代码,或者至少提供加载网页成功(或失败)的指示。 - undefined
你可以从webview中获取URL,并将其放入示例URL中 ;) - undefined
我明白你的意思。首先,我正在使用浏览器而不是WebView。其次,虽然我可以获取URL,但我目前还不知道如何获取状态码。Android浏览器肯定也有一些内部机制来维护状态码。这些应该对使用浏览器的应用程序可用,就像在Windows中,Chrome或Firefox扩展可以获取下载网页的状态码一样。 - undefined
Google Chrome:
  1. 在目标页面上右键单击,然后点击检查(ctrl + shift + i)
  2. 点击页面顶部的网络按钮
  3. 最后,您可以看到代码的状态
- undefined
1
我无法确定你是在开玩笑还是认真的。我需要在Android运行时以编程方式获取在Android浏览器中打开的网页的状态码。你知道有什么方法可以做到这一点吗? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接