`
冰糖葫芦有点酸
  • 浏览: 29500 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

Http Download File

    博客分类:
  • Java
 
阅读更多
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_

    这个示例代码名为"HttpDownloadFile_HTTP_qthttp_facedeu_tcp_QT_",它涵盖了HTTP请求、Qt网络模块以及文件I/O的操作。 首先,让我们了解一下HTTP(超文本传输协议)。HTTP是一种应用层协议,用于在Web上交换各类...

    http download file.zip

    在压缩包中的"**http download file**"可能是实现这个功能的源代码,包括HTTP请求的构建、套接字操作以及文件的读写等功能的C语言实现。分析和理解这些代码可以帮助你更深入地理解上述知识点,并能实际操作C语言实现...

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

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

    HTTPDownloadFileMe.tar.gz_HTTP下载文件_HttpDownloadFile_c http 下载 li

    在IT领域,HTTP下载文件是常见的数据传输方式,特别是在服务器与客户端之间进行大文件传输时。本主题聚焦于使用C语言在Linux系统中实现HTTP协议的断点续传功能,这是构建高效网络应用的重要组成部分。 首先,让我们...

    C#实现HTTP下载文件的方法

    public static string HttpDownloadFile(string url, string path) {  // 设置参数  HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;  //发送请求并获取相应回应数据  ...

    httpfiledownload文件下载.rar

    标题中的"httpfiledownload文件下载.rar"暗示我们关注的是一个MFC应用程序,它利用WinInet API来下载RAR格式和其他类型的文件,如JPG。这个程序可能包含一个用户界面,用户可以在文本框中输入URL,然后点击“启动...

    java web download file

    File file = new File(filePath); try (InputStream fis = new FileInputStream(file)) { // 设置响应头 setHeaders(response, file.getName()); // 写入输出流 byte[] buffer = new byte[1024]; int ...

    httpfiledownload下载与上传文件.rar

    通过这个名为"httpfiledownload"的项目,开发者可以学习到如何在MFC应用中利用WinINet API实现HTTP文件上传和下载。实践中,开发者可能需要根据实际需求调整代码,例如处理大文件、分块传输、进度显示等高级特性。 ...

    url download File

    总结起来,“url download File”这一主题涵盖了从网络获取资源的基本原理,包括理解URL、HTTP协议,使用特定编程语言的库或API,以及处理下载过程中可能出现的各种问题。在实际开发中,我们需要结合具体需求和环境...

    cs文件浏览,上传,下载

    学习用。用于非法用途,与本人无关~~~ c#网络编程 上传 下载 资源浏览 远程控制 c#网络编程 上传 下载 资源浏览 远程控制 c#网络编程 上传 下载 资源浏览 远程控制 c#网络编程 上传 下载 资源浏览 远程控制

    android download file

    Uri uri = Uri.parse("http://example.com/file.zip"); // 下载地址 Request request = new Request(uri); request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "file.zip"); ``` 4. 添加...

    利用HTTP实现多线程文件下载.pdf

    - `MainForm.cs`中的`button1_Click`事件触发下载操作,调用`HttpDownloadFile`函数。 - `HttpDownloadFile`函数首先检查资源有效性,然后计算每个线程应下载的数据量。 - 使用`HttpWebRequest`创建请求,并通过`...

    Spring MVC upload/download file(注释和非注释实现)

    <input type="file" name="file" id="file"> 上传文件 ``` #### 3. 创建控制器 使用`@RequestParam("file") MultipartFile file`接收上传的文件,然后将其保存到服务器的指定目录: ```java import org.spring...

    Download拖放界面.rar_download_download file link_drag drop_下载_网络下载

    3. **HTTP下载**:`HTTPDownload.cpp`暗示了项目中包含了HTTP协议的下载实现。HTTP(超文本传输协议)是最常见的文件下载方式,用于在Web上发送和接收数据。程序可能使用了HTTP GET请求来获取远程文件。 4. **对话...

    ue4 下载文件插件ue4 下载文件插件

    HttpDownLoadFile可能是这个插件的名字,它可能包含了一个类或者一系列函数,用于处理HTTP请求和文件下载的过程。 在UE4中使用文件下载插件,一般涉及以下步骤: 1. **配置插件**:首先,你需要在你的项目中安装并...

    FileUploadAndDownLoad

    本主题“FileUploadAndDownLoad”将深入讲解如何使用JSP(JavaServer Pages)技术来实现这一功能。JSP是一种基于Java的服务器端脚本语言,它允许开发人员在HTML页面中嵌入Java代码,从而动态生成网页内容。 首先,...

    PyPI 官网下载 | django-file-download-1.0.1.tar.gz

    《PyPI官网下载:django-file-download-1.0.1.tar.gz详解》 在Python的世界里,Django是一个广泛使用的开源Web框架,以其强大的功能和高效性而备受开发者喜爱。而今天我们要关注的是一个名为`django-file-download`...

    hfs.rar_Http-File-Server_hfs_http file server_http upload downlo

    标签中的"Http-File-Server"、"hfs"、"http_file_server"、"http_upload_download"、"http_upload_file"进一步强调了HFS的主要特性和使用场景。HTTP文件服务器的特性使得HFS能够跨越网络进行文件交互,...

    Download File

    在ASP.NET中,我们可以使用HTTP响应对象(HttpResponse)来发送文件到客户端,模拟文件下载过程。 下载文件的核心在于设置正确的HTTP响应头,包括Content-Type、Content-Disposition和Content-Length。Content-Type...

Global site tag (gtag.js) - Google Analytics