`

使用http协议下载文件

阅读更多
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpDownloadFile {
 public static void main(String[] args) {
  String sURL = "http://u1-1.uutxt.com:9009/33/33311/33311_TXT_1257909348.rar";
  int nStartPos = 0;
  int nRead = 0;
  String sName = "liumanggaoshou.rar";
  String sPath = "d:\\temp";
  try {
   URL url = new URL(sURL);
   // 打开连接
   HttpURLConnection httpConnection = (HttpURLConnection) url
     .openConnection();
   // 获得文件长度
   long nEndPos = getFileSize(sURL);
   RandomAccessFile oSavedFile = new RandomAccessFile(sPath + "\\"
     + sName, "rw");
   httpConnection
     .setRequestProperty("User-Agent", "Internet Explorer");
   String sProperty = "bytes=" + nStartPos + "-";
   // 告诉服务器book.rar这个文件从nStartPos字节开始传
   httpConnection.setRequestProperty("RANGE", sProperty);
   System.out.println(sProperty);
   InputStream input = httpConnection.getInputStream();
   byte[] b = new byte[1024];
   // 读取网络文件,写入指定的文件中
   while ((nRead = input.read(b, 0, 1024)) > 0 && nStartPos < nEndPos) {
    oSavedFile.write(b, 0, nRead);
    nStartPos += nRead;
   }
   httpConnection.disconnect();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 // 获得文件长度
 public static long getFileSize(String sURL) {
  int nFileLength = -1;
  try {
   URL url = new URL(sURL);
   HttpURLConnection httpConnection = (HttpURLConnection) url
     .openConnection();
   httpConnection
     .setRequestProperty("User-Agent", "Internet Explorer");

   int responseCode = httpConnection.getResponseCode();
   if (responseCode >= 400) {
    System.err.println("Error Code : " + responseCode);
    return -2; // -2 represent access is error
   }
   String sHeader;
   for (int i = 1;; i++) {
    sHeader = httpConnection.getHeaderFieldKey(i);
    if (sHeader != null) {
     if (sHeader.equals("Content-Length")) {
      nFileLength = Integer.parseInt(httpConnection
        .getHeaderField(sHeader));
      break;
     }
    } else
     break;
   }
  } catch (IOException e) {
   e.printStackTrace();
  } catch (Exception e) {
   e.printStackTrace();
  }
  System.out.println(nFileLength);
  return nFileLength;
 }
}

 

分享到:
评论

相关推荐

    http download file.zip_HTTP协议下载文件_http c语言_linux http 下载

    在Linux平台上,使用C++语言实现HTTP协议下载文件是一个典型的网络编程任务,涉及到TCP/IP通信、HTTP协议理解和文件I/O操作。以下是对这个主题的详细解释: 1. **HTTP协议**:超文本传输协议(HTTP)是互联网上应用...

    使用HTTP协议将文件下载到Windows的下载文件临时目录的程序源代

    在Windows系统中,有一个专门用于临时存储下载文件的目录,通常位于C:\Users\用户名\AppData\Local\Temp,这里称为“下载文件临时目录”。程序的目标就是将通过HTTP获取的文件保存到这个位置。 源代码中可能包含了...

    自协议文件下载

    此文件可能是测试数据,或者包含有关自协议下载配置或元数据的描述,如下载地址、文件大小等。 5. **TaskLoader**:这可能是一个可执行文件或者类库,是实际处理自协议下载的核心组件。它可能实现了解析自协议、...

    c++ 实现 http 协议 上传下载文件

    c++ 实现,在 linux 平台测试通过,windows 上原理是一样的,下载上传大文件没有问题,

    采用http协议实现文件下载功能源代码

    本文将深入探讨如何使用C语言来实现一个基于HTTP协议的文件下载功能,以及它在资源占用和效率上的优势。 HTTP协议是应用层的一个标准协议,主要用于Web浏览器和服务器之间的数据交换。在文件下载场景中,客户端...

    STM32+LWIP+OS http下载文件C语言实现

    这个项目的目标是利用STM32、LWIP和操作系统来实现在C语言环境中通过HTTP协议下载文件。 首先,我们需要理解HTTP协议的基本工作原理。HTTP(HyperText Transfer Protocol)是一种应用层协议,主要用于传输超文本...

    LoadRunner测试HTTP协议下载文件

    通过以上步骤,我们能有效地使用LoadRunner测试HTTP协议下载文件的功能,确保系统在大量用户并发下载时的稳定性和效率。这不仅有助于提前发现潜在的性能问题,还能优化系统架构,提升用户体验。

    https协议下的文件下载

    这个简化的示例展示了如何在Java中使用HTTPS协议下载文件。实际应用中,还需要考虑错误处理、进度显示、多线程下载、断点续传等功能。FileDownload.java的完整实现可能会包含这些细节,让代码更加健壮和高效。 总之...

    http协议下的 文件下载源代码

    在HTTP协议下实现文件下载是Web开发中的常见需求,它涉及到服务器端的处理逻辑和客户端的交互过程。这里我们将深入探讨这个主题,并提供一个简单的基于Console的文件下载代码示例。 HTTP(超文本传输协议)是互联网...

    HTTP协议中文文档

    这个协议被用于万维网(WWW)上的数据交换,使得用户能够浏览网页、下载文件、发送表单数据等。 在HTTP协议中,通信通常基于TCP/IP协议栈。一个HTTP通信过程通常包含以下几个步骤: 1. **建立连接**:客户端首先...

    Android实现基于Http协议的文件下载

    `FileDownloader.java`可能是管理整个下载流程的类,包括检查已下载文件状态、启动或恢复下载、处理下载错误等。 4. **服务(Service)**:`FileDownloadLogService.java`可能是一个后台服务,用于在用户离开应用后...

    使用HTTP协议将文件下载到Window.rar_HTTP协议_http 协议_http 文件下载_wince http_文件下

    这是一个简单的小程序!可以实现用http协议将Web上的文件下载到本机的Windows文件夹!

    通过http协议的url下载文件

    本文将详细介绍如何使用Java通过HTTP协议的URL下载文件,并深入探讨代码实现中的关键点。 #### 一、核心概念 1. **HTTP协议**:超文本传输协议(HyperText Transfer Protocol),用于从WWW服务器传输超文本到本地...

    qt实现https协议文件下载

    HTTPS(HyperText Transfer Protocol Secure)是一种通过SSL或TLS加密的HTTP协议,它提供了数据保密性和服务器身份验证,确保了在网络上传输的数据不被篡改和窃听。在Qt中,我们可以使用QNetworkAccessManager和...

    PB下载HTTP文件.rar_PB-183下载_pb http_pb http下载_pb http下载图片_pb 下载

    例如,可以使用 `HTTPClient` 对象创建一个HTTP连接,然后使用 `OpenURL` 方法来下载文件。你需要指定文件的URL,并设置一些参数,如超时时间、请求头等。 ```pb HTTPClient hHTTPClient = Create HTTPClient ...

    基于HTTP协议的下载工具C#源文件

    这个项目提供了一个基于HTTP协议的文件下载工具,源代码使用了C#编程语言,这对于C#开发者,特别是初学者来说,是一个很好的学习资源。通过分析和研究这个源代码,我们可以深入理解HTTP协议的实现以及C#如何处理网络...

    pb实现http文件下载功能--源代码 可以直接使用

    8. **安全性考虑**:在实现HTTP文件下载时,还需关注安全问题,如使用HTTPS确保传输过程的安全,验证下载文件的完整性(例如通过校验和或数字签名)等。 9. **性能优化**:为了提高下载速度和用户体验,可能需要...

    com组件 HTTP协议下载

    在本主题中,"com组件 HTTP协议下载"指的是使用COM组件来实现通过HTTP协议进行文件下载的功能。HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从Web服务器传输数据到客户端。 在COM组件中实现...

    使用netty使用http协议开发文件服务器

    在本示例中,我们将探讨如何使用Netty实现一个基于HTTP协议的文件服务器。 首先,我们需要理解HTTP协议。HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,它规定了客户端(如浏览器)和服务器之间数据...

    Http.rar_HTTP协议_http 协议_下载 网页_文件 HTTP 下载_缃戦〉 涓嬭浇

    HTTP(Hypertext Transfer Protocol)超文本传输协议是...可能包含了一个演示或实现HTTP协议下载功能的程序,帮助用户理解HTTP协议如何在下载网页文件时发挥作用。学习和掌握HTTP协议对于理解和开发Web应用至关重要。

Global site tag (gtag.js) - Google Analytics