Java/Android 获取网络重定向文件的真实URL的示例代码
更新时间:2017年11月21日 08:37:18 作者:Donkor-
本篇文章主要介绍了Java/Android 获取网络重定向文件的真实URL的示例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
前言:
今天在测试使用第三方提供的URL进行文件下载的时候,得到了一个被重定向的url。很不幸的是这个URL对于我来说没办法进行文件下载。这时候就需要获得重定向文件的真实URL。
问题分析 :
其实Java 使用HttpURLConnection下载的的时候,会自动下载重定向后的文件,但是我们无法获知目标文件的真实文件名,文件类型,用下面的方法可以得到真实的URL
解决方案 :
需要注意的是在Android 4.0之后网络请求不能在主线程执行
new Thread(new Runnable() {
@Override
public void run() {
String str = "http://118.31.73.173:8080/magnet/play.m3u8?code=4459d2600da1379a9b06967edf518c05f0c9b43177cf28d9a70070264c228693e3888b2ab265521e01e6034c807bebdf02da4ebbf208065fd4b2d0062a3e3d83abe2c0659500dc168a9c0ba6a9098320ee4040ce57e7c57d9e1ec3f03900f631c84df0e6f38669d73ad6102fd0169b2907c3707cc2b71f5de6d789";
URL url = null;
try {
url = new URL(str);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.getResponseCode();
final String realUrl = conn.getURL().toString();
conn.disconnect();
Log.e("asd", "真实URL:" + realUrl);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
最后不要忘了添加网络权限
<uses-permission android:name="android.permission.INTERNET"/>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
SpringMvc返回modelandview返回的页面无法跳转问题及解决
这篇文章主要介绍了SpringMvc返回modelandview返回的页面无法跳转问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-05-05
@CacheEvict中的allEntries与beforeInvocation的区别说明
这篇文章主要介绍了@CacheEvict中的allEntries与beforeInvocation的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-12-12
SpringBoot 实现自定义的 @ConditionalOnXXX 注解示例详解
这篇文章主要介绍了SpringBoot 实现自定义的 @ConditionalOnXXX 注解,通过示例代码介绍了实现一个自定义的 @Conditional 派生注解,Conditional 派生注解的类如何注入到 spring 容器,需要的朋友可以参考下2022-08-08


最新评论