1. 通过在 URL 上调用 openConnection 方法创建连接对象。(HttpURLConnection conn = (HttpURLConnection)new URL("网址").openConnection();)
  2. 处理设置参数和一般请求属性。(conn.setRequestProperty()
  3. 使用 connect 方法建立到远程对象的实际连接。(conn.connect())
  4. 远程对象变为可用。远程对象的头字段和内容变为可访问。(conn.getHeaderField(),conn.getInputStream等方法对连接进行操作)

下面是对文件下载的具体实现案例(单线程):

HttpURLConnection conn = (HttpURLConnection)new URL("资源网址").openConnection();

conn.connect();

InputStream is = connection.getInputStream();

FileOutputStream os = new FileOutputStream("保存路径");
  int count = 1024;
  if(connection.getResponseCode()==200){
  while ((count = is.read(b))!=-1) {
   os.write(b,0,count);
   }
  os.close();
  is.close();

}

多线程要设置的头文件:connection.setRequestProperty("Range", "bytes=0-4194304");

/*

有个疑惑:

代码这样写的话,出现文件下载不全。

while (count==1024) {

count = is.read(b)
   os.write(b,0,count);
   }

*/

http协议下载文件的更多相关文章

  1. 根据http协议下载文件保存到相应的文件下

    本实例通过提供的http网址来下载文件,并保存到本地指定的文件下. 本例提供的网址为:http://112.53.80.131:8888/database/11.mdb,下载的文件名为:11.mdb ...

  2. 基于HTTP协议下载文件的实现

    最近在开发文件下载的程序,该程序是基于HTTP开发的. 首先是了解了文件传输到客户端的大概格式,然后分析该格式,实现写入文件的功能. 自己构造的HTTP包如下: GET /*********.rar ...

  3. Linux下使用http协议下载文件

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h&g ...

  4. libcurl 通过http协议下载文件并显示下载进度

    vc6 测试工程下载地址:http://download.csdn.net/detail/mtour/8068053 代码如下: size_t my_write_func(void *ptr, siz ...

  5. Android利用Http下载文件

    Android利用Http下载文件 一.场景 下载存文本文件和下载如mp3等大容量的文件 界面 二.代码编写 1.AndroidMainfest.xml中配置 主要是解决网络权限和写SDCard的权限 ...

  6. ftp下出现“当前的安全设置不允许从该位置下载文件”提示

    在资源管理器中使用ftp协议下载文件时,提示“当前的安全设置不允许从该位置下载文件”,下载失败. 解决方法: 1.在自己的电脑上打开Internet选项

  7. Delphi/XE2 使用TIdHttp控件下载Https协议服务器文件[转]

    之前的一篇博文详细描述了使用TIdhttp控件下载http协议的文件,在我项目的使用过程中发现对于下载Https协议中的文件与Http协议的文件不同,毕竟Https在HTTP协议基础上增加了SSL协议 ...

  8. 下载文件的协议:HTTP、FTP、P2P

    本篇学习笔记以HTTP.FTP.P2P叙述与网上下载文件有关的协议 需要掌握的要点: 下载一个文件可以使用 HTTP 或 FTP,这两种都是集中下载的方式,而 P2P 则换了一种思路,采取非中心化下载 ...

  9. C#实现http协议支持上传下载文件的GET、POST请求

    C#实现http协议支持上传下载文件的GET.POST请求using System; using System.Collections.Generic; using System.Text; usin ...

随机推荐

  1. 爬虫----爬虫请求库selenium

    一 介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作, ...

  2. 蓝桥杯 入门训练 Fibonacci数列 解析

    问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. 输入格式 输入包含一个整数n ...

  3. SQLServer 查询数据死锁语句

    SQLServer 查询数据死锁语句   我们可以通过以下SQL 语句用来查询,当前数据中存在的死锁语句,定位数据库出现死锁的根本原因.   --每秒死锁数量 SELECT * FROM sys.dm ...

  4. 快速排序javascript实现

    快速排序基本思想: 以升序为例 数组arr,数组个数n; 1.选取一个待排序的元素.一般选第一个位置作为基准值temp=arr[0]. 2.选取带排序数组的两端元素的位置作为哨兵的位置,左端为哨兵i, ...

  5. vsftpd上传文件出现553 Could not create file错误解决方法

    1.确定目录权限 2.关闭selinux

  6. MathType怎么打定积分竖线

    MathType怎么打定积分竖线-MathType中文官网 http://www.mathtype.cn/jiqiao/dingjifen-shuxian.html 输入公式后在分隔符模板中选择左竖线 ...

  7. ORM Active Record Data Mapper

    What's the difference between Active Record and Data Mapper? https://www.culttt.com/2014/06/18/whats ...

  8. hyperledger-fabric/qemu/kvm/virtual-manager -------vagrant-virtual-box

    天我也遇到了这个问题,原因是你的 vagrant 版本跟你的 virtualbox 版本不匹配,解决的方法是,更换 virtualbox 的版本.我的 vagrant 版本是 1.8.4 ,virtu ...

  9. hyperledge vagrant docker development environment

    https://blog.csdn.net/zgljl2012/article/details/52896372

  10. ms sql server 游标

    很简单的一个小例子. /****** Object: StoredProcedure [dbo].[usp_test] Script Date: 10/28/2016 15:08:31 ******/ ...