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"/>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java 实战项目之仓库管理系统的实现流程

    Java 实战项目之仓库管理系统的实现流程

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用java+SSM+jsp+mysql+maven实现一个仓库管理系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • JAVA 多态 由浅及深介绍

    JAVA 多态 由浅及深介绍

    JAVA 多态 由浅及深介绍,什么是多态?多态的详细解释,多态的好处,多态的实际运用等
    2013-03-03
  • SpringBoot3.3.0升级方案

    SpringBoot3.3.0升级方案

    本文介绍了由SpringBoot2升级到SpringBoot3.3.0升级方案,新版本的升级可以解决旧版本存在的部分漏洞问题,感兴趣的可以了解一下
    2024-08-08
  • JPA添加Pageable实现翻页时报错的问题

    JPA添加Pageable实现翻页时报错的问题

    这篇文章主要介绍了解决JPA添加Pageable实现翻页时报错的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • java使用mybatis调用存储过程返回一个游标结果集方式

    java使用mybatis调用存储过程返回一个游标结果集方式

    这篇文章主要介绍了java使用mybatis调用存储过程返回一个游标结果集方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Spring Cloud中使用Eureka的详细过程

    Spring Cloud中使用Eureka的详细过程

    Eureka 是 Netflix 开源的一个服务发现组件,它在微服务架构中扮演着重要的角色,这篇文章主要介绍了Spring Cloud中如何使用Eureka,需要的朋友可以参考下
    2024-07-07
  • mybatis的动态sql之if test的使用说明

    mybatis的动态sql之if test的使用说明

    这篇文章主要介绍了mybatis的动态sql之if test的使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java中抽象类与方法的重写方式

    Java中抽象类与方法的重写方式

    这篇文章主要介绍了Java中抽象类与方法的重写方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Java异常处理操作 Throwable、Exception、Error

    Java异常处理操作 Throwable、Exception、Error

    这篇文章主要介绍了Java异常处理操作 Throwable、Exception、Error,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 解析Mybatis延迟加载问题

    解析Mybatis延迟加载问题

    这篇文章主要介绍了Mybatis的延迟加载问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05

最新评论