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;
}
}
分享到:
相关推荐
c++ 实现,在 linux 平台测试通过,windows 上原理是一样的,下载上传大文件没有问题,
在Linux平台上,使用C++语言实现HTTP协议下载文件是一个典型的网络编程任务,涉及到TCP/IP通信、HTTP协议理解和文件I/O操作。以下是对这个主题的详细解释: 1. **HTTP协议**:超文本传输协议(HTTP)是互联网上应用...
在Windows系统中,有一个专门用于临时存储下载文件的目录,通常位于C:\Users\用户名\AppData\Local\Temp,这里称为“下载文件临时目录”。程序的目标就是将通过HTTP获取的文件保存到这个位置。 源代码中可能包含了...
HTTP协议和TCP协议pcap数据包下载,支持抓包软件(如:wireshark)打开并学习HTTP协议和TCP协议报文解析。需要其他协议,请查看我发布的其他资源。
此文件可能是测试数据,或者包含有关自协议下载配置或元数据的描述,如下载地址、文件大小等。 5. **TaskLoader**:这可能是一个可执行文件或者类库,是实际处理自协议下载的核心组件。它可能实现了解析自协议、...
本文将深入探讨如何使用C语言来实现一个基于HTTP协议的文件下载功能,以及它在资源占用和效率上的优势。 HTTP协议是应用层的一个标准协议,主要用于Web浏览器和服务器之间的数据交换。在文件下载场景中,客户端...
通过以上步骤,我们能有效地使用LoadRunner测试HTTP协议下载文件的功能,确保系统在大量用户并发下载时的稳定性和效率。这不仅有助于提前发现潜在的性能问题,还能优化系统架构,提升用户体验。
这个简化的示例展示了如何在Java中使用HTTPS协议下载文件。实际应用中,还需要考虑错误处理、进度显示、多线程下载、断点续传等功能。FileDownload.java的完整实现可能会包含这些细节,让代码更加健壮和高效。 总之...
在HTTP协议下实现文件下载是Web开发中的常见需求,它涉及到服务器端的处理逻辑和客户端的交互过程。这里我们将深入探讨这个主题,并提供一个简单的基于Console的文件下载代码示例。 HTTP(超文本传输协议)是互联网...
这个协议被用于万维网(WWW)上的数据交换,使得用户能够浏览网页、下载文件、发送表单数据等。 在HTTP协议中,通信通常基于TCP/IP协议栈。一个HTTP通信过程通常包含以下几个步骤: 1. **建立连接**:客户端首先...
`FileDownloader.java`可能是管理整个下载流程的类,包括检查已下载文件状态、启动或恢复下载、处理下载错误等。 4. **服务(Service)**:`FileDownloadLogService.java`可能是一个后台服务,用于在用户离开应用后...
这是一个简单的小程序!可以实现用http协议将Web上的文件下载到本机的Windows文件夹!
本文将详细介绍如何使用Java通过HTTP协议的URL下载文件,并深入探讨代码实现中的关键点。 #### 一、核心概念 1. **HTTP协议**:超文本传输协议(HyperText Transfer Protocol),用于从WWW服务器传输超文本到本地...
HTTPS(HyperText Transfer Protocol Secure)是一种通过SSL或TLS加密的HTTP协议,它提供了数据保密性和服务器身份验证,确保了在网络上传输的数据不被篡改和窃听。在Qt中,我们可以使用QNetworkAccessManager和...
这个项目提供了一个基于HTTP协议的文件下载工具,源代码使用了C#编程语言,这对于C#开发者,特别是初学者来说,是一个很好的学习资源。通过分析和研究这个源代码,我们可以深入理解HTTP协议的实现以及C#如何处理网络...
在本主题中,"com组件 HTTP协议下载"指的是使用COM组件来实现通过HTTP协议进行文件下载的功能。HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从Web服务器传输数据到客户端。 在COM组件中实现...
8. **安全性考虑**:在实现HTTP文件下载时,还需关注安全问题,如使用HTTPS确保传输过程的安全,验证下载文件的完整性(例如通过校验和或数字签名)等。 9. **性能优化**:为了提高下载速度和用户体验,可能需要...
例如,可以使用 `HTTPClient` 对象创建一个HTTP连接,然后使用 `OpenURL` 方法来下载文件。你需要指定文件的URL,并设置一些参数,如超时时间、请求头等。 ```pb HTTPClient hHTTPClient = Create HTTPClient ...
1. **使用HttpURLConnection下载文件**: - 首先,建立网络连接,通过`URL.openConnection()`创建HttpURLConnection对象。 - 设置请求方法,通常为GET或POST。 - 发送请求,并设置读取超时、连接超时等参数。 - ...
在本示例中,我们将探讨如何使用Netty实现一个基于HTTP协议的文件服务器。 首先,我们需要理解HTTP协议。HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,它规定了客户端(如浏览器)和服务器之间数据...