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

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

您可能感兴趣的文章:

  • android判断phonegap是否联网且加载super.loadUrl网址
  • Android HttpURLConnection.getResponseCode()错误解决方法
  • 在android中增加curl的解决方法
  • Android获取SD卡中选中图片的路径(URL)示例
  • Android调用默认浏览器打开指定Url的方法实例
  • Android 中HttpURLConnection与HttpClient使用的简单实例
  • android使用url connection示例(get和post数据获取返回数据)
  • android教程使用webview访问https的url处理sslerror示例
  • 在Android系统中使用WebViewClient处理跳转URL的方法
(0)

相关推荐

  • Android获取SD卡中选中图片的路径(URL)示例

    最近在做一个图片上传的功能,需要提供上传图片在SD卡中的路径,在网上看了些例子,改改调试成功,代码很简单.其布局文件如下: 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill

  • 在android中增加curl的解决方法

    curl是一个著名的开源文件传输协议实现软件,其中包括了HTTP.HTTPS.FTP等多种常用不常用协议的实现.在curl最新版本的官方源代码中其实已经包括了android的编译文件(Android.mk),不过要想编译通过还需要做一些工作. 我所使用的curl版本是7.20.0,android源代码版本是eclair 2.1.首先将curl解压到external目录下,将目录名称改为curl(不改也可以,不过android的习惯是不带版本号,入乡随俗吧). (1) 首先要创建一个头文件curl

  • android判断phonegap是否联网且加载super.loadUrl网址

    复制代码 代码如下: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setIntegerProperty("splashscreen", R.drawable.splash); ConnectivityManager cwjManager=(ConnectivityManager)getSystemService(Context.CONNECTIVI

  • android教程使用webview访问https的url处理sslerror示例

    在Android中,WebView是用来load http和https网页到本地应用的控件.在默认情况下,通过loadUrl(String url)方法,可以顺利load诸如,http://www.baidu.com之类的页面.但是,当load有ssl层的https页面时,如https://money.183.com.cn/,如果这个网站的安全证书在Android无法得到认证,WebView就会变成一个空白页,而并不会像PC浏览器中那样跳出一个风险提示框.因此,我们必须针对这种情况进行处理. A

  • Android调用默认浏览器打开指定Url的方法实例

    复制代码 代码如下: package com.gzz.whyinzi; import android.net.Uri;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.util.Log;import android.view.Menu;import android.view.View; public class MainActivity extends

  • 在Android系统中使用WebViewClient处理跳转URL的方法

    前言 最近代码里和WebView有很多的交互,webview是android中的浏览器控件,这里主要介绍一下webview如何重载WebViewClient类来控制URL加载. 使用WebViewClient 使用WebViewClinet主要是继承WebViewClient父类,根据需要重写其中的方法,并在WebView中进行配置,示例代码如下: webView = (WebView) findViewById(R.id.webview); webView.setWebViewClient(n

  • Android HttpURLConnection.getResponseCode()错误解决方法

    导语:个人对网络连接接触的不多,在使用时自己发现一些问题,记录一下. 正文:我在使用HttpURLConnection.getResponseCode()的时候直接报错是IOException错误,responseCode = -1.一直想不明白,同一个程序我调用了两次,结果有一个链接一直OK,另一个却一直报这个错误.后来发现两个链接的区别,有一个返回的内容是空的,所以导致了这个错误. 解决方法: 方法1.网页返回内容不能是空: 方法2.不要用这个接口咯.

  • Android 中HttpURLConnection与HttpClient使用的简单实例

    1:HttpHelper.java 复制代码 代码如下: public class HttpHelper {    //1:标准的Java接口    public static String getStringFromNet1(String param){        String result="";        try{            URL url=new URL(param);            HttpURLConnection conn=(HttpURLCo

  • android使用url connection示例(get和post数据获取返回数据)

    一定要加上对Sd卡读写文件的权限声明,以及访问网络的权限 复制代码 代码如下: <uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="androi

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

    前言: 今天在测试使用第三方提供的URL进行文件下载的时候,得到了一个被重定向的url.很不幸的是这个URL对于我来说没办法进行文件下载.这时候就需要获得重定向文件的真实URL. 问题分析 : 其实Java 使用HttpURLConnection下载的的时候,会自动下载重定向后的文件,但是我们无法获知目标文件的真实文件名,文件类型,用下面的方法可以得到真实的URL 解决方案 : 需要注意的是在Android 4.0之后网络请求不能在主线程执行 new Thread(new Runnable()

  • Android 获取屏幕的多种宽高信息的示例代码

    本文主要介绍了Android 获取屏幕的多种宽高信息的示例代码,分享给大家,具体如下: 包含的宽高信息如下图所示: 在模拟器上获取到的数据: 08-26 07:19:32.712 7834-7834/com.czy.screeninfo E/MainActivity: getTotalScreenHeight 1920 08-26 07:19:33.505 7834-7834/com.czy.screeninfo E/MainActivity: getScreenWidth 1080 08-26

  • Java多线程文件分片下载实现的示例代码

    多线程下载介绍 多线程下载技术是很常见的一种下载方案,这种方式充分利用了多线程的优势,在同一时间段内通过多个线程发起下载请求,将需要下载的数据分割成多个部分,每一个线程只负责下载其中一个部分,然后将下载后的数据组装成完整的数据文件,这样便大大加快了下载效率.常见的下载器,迅雷,QQ旋风等都采用了这种技术. 分片下载 所谓分片下载就是要利用多线程的优势,将要下载的文件一块一块的分配到各个线程中去下载,这样就极大的提高了下载速度. 技术难点 并不能说是什么难点,只能说没接触过不知道罢了. 1.如何请

  • Android 阿里云OSS文件上传的实现示例

    估计有小伙伴看到阿里云oss的api文档十脸懵逼了,啊哈哈哈,接下来博主就来拯救你了,看完觉得好的就关注博主吧,么么么么么哒!!! 想要自己研究阿里云oss的,博主开启传送门给你:阿里云oss 一.项目导入阿里云oss的SDK 方式1:在build文件添加依赖(博主和官方一致推荐) dependencies { //阿里云oss implementation 'com.aliyun.dpa:oss-android-sdk:+' } 方式2:源码编译jar包 源码传送门:官方阿里云oss源码 二.

  • Java批量写入文件和下载图片的示例代码

    很久没有在WhitMe上写日记了,因为觉着在App上写私密日记的话肯定是不安全的,但是想把日记存下来.,然后看到有导出日记的功能,就把日记导出了(还好可以直接导出,不然就麻烦点).导出的是一个html文件.可以直接打开,排版都还在. 看了下源码,是把日记存在一个json数组里了,图片还是在服务器,利用url访问,文字是在本地了. 但是想把图片下载到本地,然后和文字对应,哪篇日记下的哪些图片. 大概是如下的json数组. 大概有几百条,分别是头像.内容:文字||内容:图片.时间. 简单明了的jso

  • Java SpringBoot实现文件上传功能的示例代码

    测试代码 pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org

  • android 仿QQ动态背景、视频背景的示例代码

    本文介绍了android 仿QQ动态背景.视频背景的示例代码,分享给大家,具体如下: 效果如下: 如上图类似效果图: 1, 自定义视频类 继承VideoView public class CustomVideoView extends VideoView { public CustomVideoView(Context context) { super(context); } public CustomVideoView(Context context, AttributeSet attrs)

  • Python实现文件压缩和解压的示例代码

    大家可能都熟悉.zip格式的文件.它可以把多个文件,压缩成一个文件.这在网络上传输时很有用,而且节省硬盘空间. 接下来,我们使用Python实现压缩和解压. 读取ZIP文件信息 要读取ZIP文件的内容,首先必须创建一个ZipFile对象.ZipFile对象在概念上与File对象相似. 要创建一个 ZipFile 对象,就调用 zipfile.ZipFile()函数,向它传入一个字符串,表示.zip 文件的文件名. 请注意,zipfile 是 Python 模块的名称,ZipFile()是函数的名

  • 使用Python获取爱奇艺电视剧弹幕数据的示例代码

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于数据STUDIO,作者龙哥带你飞 Python分析抖音用户行为数据视频讲解地址 https://www.bilibili.com/video/BV1yp4y1q7ZC/ 数据获取是数据分析中的重要的一步,数据获取的途径多种多样,在这个信息爆炸的时代,数据获取的代价也是越来越小.因此如此,仍然有很多小伙伴们无法如何获取有用信息.此处以最近的热播排行榜第一名的<流金岁月>为例,手把手

  • Go实现替换(覆盖)文件某一行内容的示例代码

    目录 1.前言 2.实现覆盖某一行文件内容的思路 3.实现覆盖某一行内容的代码示例 4.扩展 1.前言 有这样一个需求,我们查找到文件中带有某个关键词的一行内容后,对该行内容进行替换,替换成我们需要的新内容,比如修改网络配置文件.修改图片地址.修改代码中所有关键词等,类似于编辑器中的关键词替换功能,只不过我们是直接判断文件而已. 2.实现覆盖某一行文件内容的思路 1.打开文件2.读取文件每一行3.根据关键词判断是否是需要覆盖的行,是的话则从行开头写内容,使其覆盖该行旧内容由于是覆盖,所以我们有一

随机推荐