当前位置: 首页 > 编程笔记 >

Java/Android 获取网络重定向文件的真实URL的示例代码

南门野
2023-03-14
本文向大家介绍Java/Android 获取网络重定向文件的真实URL的示例代码,包括了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"/>

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

 类似资料:
  • 我正在尝试获得存储在S3中的图像的重定向URL。由于CORS的一些问题,我尝试使用AJAX调用和JSONP来实现。但我有个问题: 我不想打开文件或遵循重定向。我只需要网址。

  • 问题内容: 我找到了许多描述PRG的网站,但没有简单的PHP代码示例。 这是我实现的: 该有一个动作:。 将永远不会被用户看到; if验证所有内容,如果有效,则将其写入数据库并生成确认页面的HTML;如果无效,则生成错误页面的HTML,以解释错误所在。 生成的HTML都存储在变量中,然后调用。 的of (如果用户读取了URL)仅由组成。 在我看来,这就像针对页面重新加载和后退按钮问题的防护措施。

  • 问题内容: 我正在从网站上获取内容,而且即使我作为参数传递的URL重定向到另一个URL,它也可以正常工作。 问题是我需要知道新的URL,有没有办法做到这一点? 问题答案: 您可以使用cURL而不是发出请求。 这样的事情应该起作用… 资源

  • 本文向大家介绍android 监听网络状态的变化及实战的示例代码,包括了android 监听网络状态的变化及实战的示例代码的使用技巧和注意事项,需要的朋友参考一下 平时我们在请求错误的情况下,通常会进行处理一下,一般来说,主要分为两方面的错误 没有网络的错误 在有网络的情况下,我们客户端的错误或者服务器端的错误 今天这篇博客主要阐述以下问题 怎样监听网络状态的变化,包括是否打开WiFi,否打开数据

  • 问题内容: 这可能与以前的帖子类似,但是我想具体说明在网络上而不是本地使用锁定。我想将文件写入共享位置,因此它很可能会在网络上运行(一定是Windows网络,也许是Mac)。我想防止其他人在写入文件时读取文件的任何部分。这不是一个高度并发的过程,文件通常小于10MB。 我已经阅读了文档和文档,对什么是安全的和什么不是安全的感到有些困惑。我想锁定整个文件,而不是部分文件。 我可以使用,并且它在网络上

  • 我正在开发一款。我将启动意图的转换为字符串,它会给我。但我需要找到真正的路径。 例如: