package com.augmentum.mediaprocess.util;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.fluent.Request;
import org.apache.http.client.utils.URIUtils;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
@Slf4j
public class HttpUtil {
public static InputStream downFile(String src) throws IOException {
return downFile(URI.create(src));
}
/**
* Download File from web
*/
public static InputStream downFile(URI uri) throws IOException {
HttpResponse httpResponse;
try {
Request request = Request.Get(uri);
HttpHost httpHost = URIUtils.extractHost(uri);
if (StringUtils.isNotEmpty(httpHost.getHostName())) {
request.setHeader("Host", httpHost.getHostName());
}
request.addHeader("user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36");
httpResponse = request.execute().returnResponse();
} catch (Exception e) {
log.error("Remote request failed,url=" + uri, e);
throw new FileNotFoundException();
}
int code = httpResponse.getStatusLine().getStatusCode();
if (code != 200) {
throw new FileNotFoundException();
}
return httpResponse.getEntity().getContent();
}
}
分享到:
相关推荐
这个示例代码名为"HttpDownloadFile_HTTP_qthttp_facedeu_tcp_QT_",它涵盖了HTTP请求、Qt网络模块以及文件I/O的操作。 首先,让我们了解一下HTTP(超文本传输协议)。HTTP是一种应用层协议,用于在Web上交换各类...
在压缩包中的"**http download file**"可能是实现这个功能的源代码,包括HTTP请求的构建、套接字操作以及文件的读写等功能的C语言实现。分析和理解这些代码可以帮助你更深入地理解上述知识点,并能实际操作C语言实现...
在Linux平台上,使用C++语言实现HTTP协议下载文件是一个典型的网络编程任务,涉及到TCP/IP通信、HTTP协议理解和文件I/O操作。以下是对这个主题的详细解释: 1. **HTTP协议**:超文本传输协议(HTTP)是互联网上应用...
在IT领域,HTTP下载文件是常见的数据传输方式,特别是在服务器与客户端之间进行大文件传输时。本主题聚焦于使用C语言在Linux系统中实现HTTP协议的断点续传功能,这是构建高效网络应用的重要组成部分。 首先,让我们...
public static string HttpDownloadFile(string url, string path) { // 设置参数 HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; //发送请求并获取相应回应数据 ...
标题中的"httpfiledownload文件下载.rar"暗示我们关注的是一个MFC应用程序,它利用WinInet API来下载RAR格式和其他类型的文件,如JPG。这个程序可能包含一个用户界面,用户可以在文本框中输入URL,然后点击“启动...
File file = new File(filePath); try (InputStream fis = new FileInputStream(file)) { // 设置响应头 setHeaders(response, file.getName()); // 写入输出流 byte[] buffer = new byte[1024]; int ...
通过这个名为"httpfiledownload"的项目,开发者可以学习到如何在MFC应用中利用WinINet API实现HTTP文件上传和下载。实践中,开发者可能需要根据实际需求调整代码,例如处理大文件、分块传输、进度显示等高级特性。 ...
总结起来,“url download File”这一主题涵盖了从网络获取资源的基本原理,包括理解URL、HTTP协议,使用特定编程语言的库或API,以及处理下载过程中可能出现的各种问题。在实际开发中,我们需要结合具体需求和环境...
在"31_HTTPC_Download_File"这个文件中,可能包含了以下内容: 1. STM32F103RC的初始化代码,包括W5500的SPI配置和网络参数设置。 2. HTTP GET请求的构建函数,用于生成符合HTTP规范的请求报文。 3. 数据传输的处理...
学习用。用于非法用途,与本人无关~~~ c#网络编程 上传 下载 资源浏览 远程控制 c#网络编程 上传 下载 资源浏览 远程控制 c#网络编程 上传 下载 资源浏览 远程控制 c#网络编程 上传 下载 资源浏览 远程控制
Uri uri = Uri.parse("http://example.com/file.zip"); // 下载地址 Request request = new Request(uri); request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "file.zip"); ``` 4. 添加...
- `MainForm.cs`中的`button1_Click`事件触发下载操作,调用`HttpDownloadFile`函数。 - `HttpDownloadFile`函数首先检查资源有效性,然后计算每个线程应下载的数据量。 - 使用`HttpWebRequest`创建请求,并通过`...
<input type="file" name="file" id="file"> 上传文件 ``` #### 3. 创建控制器 使用`@RequestParam("file") MultipartFile file`接收上传的文件,然后将其保存到服务器的指定目录: ```java import org.spring...
3. **HTTP下载**:`HTTPDownload.cpp`暗示了项目中包含了HTTP协议的下载实现。HTTP(超文本传输协议)是最常见的文件下载方式,用于在Web上发送和接收数据。程序可能使用了HTTP GET请求来获取远程文件。 4. **对话...
HttpDownLoadFile可能是这个插件的名字,它可能包含了一个类或者一系列函数,用于处理HTTP请求和文件下载的过程。 在UE4中使用文件下载插件,一般涉及以下步骤: 1. **配置插件**:首先,你需要在你的项目中安装并...
本主题“FileUploadAndDownLoad”将深入讲解如何使用JSP(JavaServer Pages)技术来实现这一功能。JSP是一种基于Java的服务器端脚本语言,它允许开发人员在HTML页面中嵌入Java代码,从而动态生成网页内容。 首先,...
《PyPI官网下载:django-file-download-1.0.1.tar.gz详解》 在Python的世界里,Django是一个广泛使用的开源Web框架,以其强大的功能和高效性而备受开发者喜爱。而今天我们要关注的是一个名为`django-file-download`...
标签中的"Http-File-Server"、"hfs"、"http_file_server"、"http_upload_download"、"http_upload_file"进一步强调了HFS的主要特性和使用场景。HTTP文件服务器的特性使得HFS能够跨越网络进行文件交互,...