Java/Android 获取网络重定向文件的真实URL的示例代码
程序员文章站
2024-04-01 19:34:46
前言:
今天在测试使用第三方提供的url进行文件下载的时候,得到了一个被重定向的url。很不幸的是这个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"/>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。