某些url未在Web视图中加载,但在浏览器中加载



我正在尝试使用Web视图加载报纸URL。这是我的网络视图设置:

binding.webView.settings
.run {
javaScriptEnabled = true
builtInZoomControls = true
displayZoomControls = false
domStorageEnabled = true
databaseEnabled = true
loadWithOverviewMode = true
useWideViewPort = true
}

我试图加载的url是:http://feeds.inquisitr.com/~r/google/yDYq/~3/1glI3navSEE/

但它没有加载,然而,当我在浏览器中粘贴这个url时,浏览器会更改url,它会完美加载。我还需要在我的网络视图中做什么,这样它就可以像浏览器一样改变(解码(url。

p.s:当我在浏览器中加载这个url时,url变成";https://www.inquisitr.com/6337911/big-brother-22-week-11-veto-winner/?utm_source=feedburner&utm_medium=馈送&utm_campaign=订阅源%3A+谷歌%2FyDYq+%28The+Inquisitr+-+新闻%29">

解决方案是什么?

您在上面的示例中使用了缩短的URL。您需要获得最终的URL才能加载到webView中。您可以通过实现以下方法获得最终URL:

public static String getFinalURL(String url) throws IOException {
HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
con.setInstanceFollowRedirects(false);
con.connect();
con.getInputStream();
if (con.getResponseCode() == HttpURLConnection.HTTP_MOVED_PERM || con.getResponseCode() == HttpURLConnection.HTTP_MOVED_TEMP) {
String redirectUrl = con.getHeaderField("Location");
return getFinalURL(redirectUrl);
}
return url;
}

注意:如果有多个重定向,这种方法是递归的。

最新更新