如何在 Android 上通过 ssl (https) 下载文件

2024-01-10

我有一个应用程序正在使用下面的 http 代码,但是出于安全原因,它被更改为 https,但这会导致下载失败。我尝试只是改变httpURLConnection to httpsURLConnection但这没有用。

try {

    FileOutputStream f = new FileOutputStream(directory);
    URL u = new URL(fileURL);
    HttpURLConnection c = (HttpURLConnection) u.openConnection();
    c.setRequestMethod("GET");
    c.setDoOutput(true);
    c.connect();

    InputStream in = c.getInputStream();

    byte[] buffer = new byte[1024];
    int len1 = 0 
    while ((len1 = in.read(buffer)) > 0) {
        f.write(buffer, 0, len1);
        Log.d("downloader","downloading");
    }

    f.close();
    } catch (Exception e) {
        e.printStackTrace();
        Log.d("downloader", "catch");
    }

没有特定的密码或从我的计算机连接所需的任何内容,事实上,如果我转到 Android 手机上的浏览器并输入相关的 HTTPS URL,它会正常加载...我只是不知道该怎么做在我的应用程序中。

我几乎没有安全或证书或任何方面的经验,所以我什至不确定这里需要什么或在哪里寻找。

Thanks


看看Android 文档中的 HTTPS 和 SSL 文章 http://developer.android.com/training/articles/security-ssl.html。他们在那里有一个简单的示例,假设您的 HTTPS 证书是由受信任的 CA 签名的(正如您所写,您可以通过具有此类签名证书的浏览器使用服务器):

URL url = new URL("https://wikipedia.org");
URLConnection urlConnection = url.openConnection();
InputStream in = urlConnection.getInputStream();
copyInputStreamToOutputStream(in, System.out);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Android 上通过 ssl (https) 下载文件 的相关文章

随机推荐

  • 语音识别产生 OSError:没有可用的默认输入设备

    This import speech recognition as sr r sr Recognizer with sr Microphone as source print Speak Anything audio r listen so
  • Swift:截断浮点数以将其显示在标签中[重复]

    这个问题在这里已经有答案了 当我想截断浮点数以在 Objective C 中的标签中显示时 我可以使用LABEL text NSString stringWithFormat 3f FLOAT 虽然我找不到如何在 Swift 中做到这一点
  • 使用 PyQt 捕获网络摄像头视频

    给出以下 PyQt 代码 我可以完美捕获网络摄像头的流视频 现在 我想修改代码 因此添加了一个名为 捕获 按钮 按下后将捕获流视频并保存图像 我怎样才能做到这一点 获得的小图像将用于查询对象识别服务器 import sys from PyQ
  • Spring MVC 检测ajax请求

    如何以最好的方式检测ajax请求 我目前在我的控制器中使用它 private boolean isAjax HttpServletRequest request String header request getHeader x reque
  • SwiftUI 工作表在第一次出现时就被忽略了

    这个错误快把我逼疯了 有时 大多数时候 提交的工作表会被忽略first打开的时间 这种情况仅发生在设备上并且仅在应用程序第一次启动时发生 这是使用 Xcode 12 1 构建的运行 iOS 14 1 的 iPhone 11 上的外观 也可以
  • 现代 Akka DI 与 Guice

    这里是 Java 8 Guice 4 0 和 Akka 2 3 9 我试图弄清楚如何用 JSR330 风格注释我的演员类 Inject注释 然后通过 Guice 将它们全部连接起来 但实际上我读过的每一篇文章 下面的一些例子 要么使用 Sc
  • 当功能发生代码更改时,我们是否可以仅发布动态功能模块,而不是再次发布整个应用程序?

    假设我们的项目中有不同的功能模块 并且其中一项按需功能发生了代码更改 现在我想知道的是 我们是否可以仅针对代码更改的功能构建 aab android 应用程序包 或 apk 并将其上传到 Playstore 而不是再次构建整个应用程序并上传
  • winforms 手风琴 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人知道 C winforms 手风琴控件吗 最好是开源或免费的 这是一个使用的基本示例CheckBox
  • HTML 中的 标签

    我正在编写 HTML 入门课程 我记得 9 年前我在学习 HTML 时发现 img and
  • 为名称中带有“点”的变量赋值

    我是 R 新手 正在尝试以下代码 令我惊讶的是 分配一些东西给ret log id实际上会导致将相同的值分配给ret log以及 例如 ret lt c ret log id lt a 运行以下命令将返回 a ret log 这是 R 应该
  • 有没有办法获取所有已注册的消息转换器?

    我想以某种方式注入所有HttpMessageConverter在 Spring MVC 中注册的实例 我可以成功注入所有已通过注册的内容 private HttpMessageConverter converters Autowired p
  • 是否可以使用replaceAll()将字符串中的前导零替换为相同数量的空格?

    在Java中 我尝试用 spacespace1 234 替换 001 234 等字符串 然而 我是一个正则表达式新手 我似乎最终将所有前导零都替换为单个空格 我知道我可以通过循环轻松完成此操作 但我正在尝试使用正则表达式并感谢任何帮助 没问
  • 在带有色调(分类变量)的pairgrid图上显示两个相关系数 - seaborn python

    我找到了一个函数来计算相关系数 然后将其添加到配对图中 如下所示 我的问题是 当我运行带有色调 分类变量 的配对图时 两组的相关系数显示在彼此之上 这就是情节的样子 https i stack imgur com AZao1 png 这是我
  • ReactJS 表单提交阻止默认不起作用

    我正在学习 React JS 同时遵循在线教程 下面的代码停止工作并给我一个异常 TypeError 无法读取未定义的属性 PreventDefault 有人可以帮我理解造成这种情况的原因吗 提前致谢 const Card props gt
  • 在 php 中打开另一个页面[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 页面重定向 https stackoverflow com questions 2112373 php page redirect 一旦进程完成 我如何重定向到 php 中的另一个页面 例如我
  • 创建一个类,通过在 clojure 中覆盖来扩展类

    我有非常简单的java代码 public class MessageListenerExample extends ListenerAdapter Override public void onMessageReceived Message
  • 在 VBA 公式中包含带引号的文本

    我有一个编码为重置电子表格的按钮 在 VBA 中使用以下行 Range F6 IF AND vtype TRUE U41 gt 0 vatable FALSE vatrate 100 VAT IF AND vtype TRUE matchn
  • 是否可以使用通配符 SAN 证书? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否可以使用通配符域和 SAN 通过单个证书来保护多个域 例如 一个 SAN 证书可保护两者 domain1 com and domain
  • 如何检查关系是否已建立 - Core Data

    在向核心数据添加数据时 如何检查关系是否已建立 目前我有一个TO MANY我的两个实体之间的关系 我正在尝试创建一个详细视图 但正在努力 我不确定是否由于未建立关系而导致 或者我的问题是否是将数据传递到新的视图控制器 我使用以下代码将数据添
  • 如何在 Android 上通过 ssl (https) 下载文件

    我有一个应用程序正在使用下面的 http 代码 但是出于安全原因 它被更改为 https 但这会导致下载失败 我尝试只是改变httpURLConnection to httpsURLConnection但这没有用 try FileOutpu