Android 获取url重定向后的真实链接
2018-02-11 17:32
1126 查看
在Android WebView中,我们常常会自定义一个WebViewClient并重写 shouldOverrideUrlLoading方法 来处理网页内的超链接事件。
但有时候我们会发现我们首次加载url也会进入到 shouldOverrideUrlLoading 方法中,这是因为我们的初始链接并不是网页记载成功后的真正链接,而是被系统重定向过的。所以在某些情况下就需要我们在加载网页前获取 url 的重定向地址。
这里需要注意 getRedirectUrl 方法是需要运行在子线程中的。
但有时候我们会发现我们首次加载url也会进入到 shouldOverrideUrlLoading 方法中,这是因为我们的初始链接并不是网页记载成功后的真正链接,而是被系统重定向过的。所以在某些情况下就需要我们在加载网页前获取 url 的重定向地址。
/** * 获取重定向地址 * * @param path * @return * @throws Exception */ private String getRedirectUrl(String path) { String url = null; try { HttpURLConnection conn = (HttpURLConnection) new URL(path).openConnection(); conn.setInstanceFollowRedirects(false); conn.setConnectTimeout(5000); url = conn.getHeaderField("Location"); conn.disconnect(); } catch (IOException e) { e.printStackTrace(); } return url; }
这里需要注意 getRedirectUrl 方法是需要运行在子线程中的。
new Thread() { @Override public void run() { final String path = getRedirectUrl(uri.toString()); getActivity().runOnUiThread(new Runnable() { @Override public void run() { webView.loadUrl(path); } }); } }.start();}}.start();
相关文章推荐
- Java/Android 获取网络重定向文件的真实URL的示例代码
- Java/Android 获取网络重定向文件的真实URL
- Web逆向之通过Android中WebView获取网站视频真实链接
- Java 获取网络重定向文件的真实URL
- python 重定向获取真实url的方法
- 工具类:根据URL获取短链接,根据短链接获取真实URL
- php脚本生成google play url的下载链接,下载apk并自动反编译后获取android版本号
- Android4.0.4编程日记(5)--URL网络链接获取数据
- 获取软件下载的真实地址!再谈获取Response.redirect重定向的URL
- Android通过HttpURLConnection链接到网络,并获取网络数据
- Android Webview新认识(获取cookie,所加载网页内的链接的url)
- 获取软件下载的真实地址!再谈获取Response.redirect重定向的URL
- python 重定向获取真实url
- php获取跳转后的真实链接
- 巧用a链接获取url的search和hash等(比字符串截取或正则要简单)
- 解析百度搜索结果链接的url,获取真正的url
- C++和python如何获取百度搜索结果页面下信息对应的真实链接(百度搜索爬虫,可指定页数)
- android链接wifi下获取外网ip
- 在Wordpress的文章页面获取上一页及下一页的链接URL地址,实现通过键盘的前进后退键进行翻页