由于客户端有上传文件的需求,服务器接收到客户端上传的文件后,需要将文件透传给后台业务系统.
以前给后台业务系统交互时,组装多段请求时使用的是org.apache.http.entity.mime.content.FileBody对象保存文件对象透传,但是这样的话,服务器需要在本地生成临时文件,比较麻烦.
ContentBody body = new FileBody((File) value);
entity.addPart("pic", body);
这样的话需要先生成本地文件,上传成功后再删除临时文件,相当繁琐.
今天偶然发现,可以使用org.apache.http.entity.mime.content.InputStreamBody.InputStreamBody(InputStream, String)类,直接将客户端的文件输入流拷贝一下就可以了.这样就省去了在本地生成临时文件的麻烦.
ByteArrayInputStream bis = new ByteArrayInputStream(data);
InputStreamBody isb = new InputStreamBody(bis, fileName);
entity.addPart("pic", isb);
通过以上改造,省去了在本地生成临时文件的烦恼,并且使代码看起来更加直观.
这种方式适用于需要透传文件的地方.比如
"客户端"--"服务器"--"业务系统",
"客户端"最终要将文件上传到
"业务系统",这时
"服务器"就可以使用这种方法,直接透传,省时省力.
分享到:
相关推荐
总结来说,Android通过HttpClient上传文件到服务器涉及以下几个关键步骤: 1. 添加HttpClient及相关库。 2. 创建HttpClient和HttpPost对象。 3. 构建MultipartEntity,包含要上传的文件信息。 4. 设置HttpPost的实体...
在本篇文章中,我们将深入探讨如何使用HTTPClient上传文件以及解决可能出现的乱码问题。 首先,让我们关注“httpclient 上传文件”。在HTTP协议中,文件上传通常涉及到POST请求,特别是当Content-Type设置为...
使用httpclient上传文件, CloseableHttpClient httpClient = HttpClientBuilder.create().build();
在这个场景中,"HttpClient上传文件需要的Jar包"指的是在使用HttpClient进行文件上传操作时,你需要确保引入了正确的依赖库。 首先,我们需要了解HttpClient的基本概念。HttpClient是Apache软件基金会的一个项目,...
在这个场景中,我们关注的是如何使用HttpClient来上传文件到服务器。Apache HttpClient支持POST请求,特别是Multipart/form-data类型的POST,这是上传文件的标准格式。以下是关于这个主题的详细讲解: 1. **...
它允许我们将文件作为多部分/form-data类型的数据发送,这是HTTP协议中用于上传文件的标准格式。 3. **文件上传步骤**: - **创建HttpClient对象**:首先,我们需要实例化一个`CloseableHttpClient`对象,它是...
本篇文章将详细讲解如何利用HttpClient上传文件到测试服务器,这在进行API测试、自动化测试或者集成测试时非常有用。我们先来理解一下HttpClient的基本概念,然后逐步探讨文件上传的步骤。 HttpClient是由Apache...
花了大半天写的测试类,用的时候记得改下引用的包名,可以当util工具类用,其他说明见博客 ...流方式发送接收: ...觉得可以的话,又不想复制粘贴,就花点积分下载吧,o(* ̄︶ ̄*)o
用httpcient上传文件,用httpclient上传文件
在Java开发中,经常会遇到需要通过HTTP协议上传文件的需求。Apache HttpClient是一个强大的客户端HTTP组件,它不仅支持HTTP协议,还能处理HTTPS请求,并提供了多种功能来简化HTTP客户端开发过程。本文档将详细介绍...
HttpClient 上传文件 Servlet 处理文件上传 commons-fileupload 处理文件上传 commons-fileupload 处理文件上传,在struts中可以不用对应actionform,在jsp,servelet中应用都很方便
HTTPClient 4提供了`MultipartEntityBuilder`或`HttpEntityEnclosingRequestBase`类来构建多部分表单数据,用于上传文件。首先,你需要创建一个`FileEntity`对象,指定要上传的文件路径,然后将其添加到`...
使用HTTPClient,你可以方便地实现文件的POST请求(用于上传)和GET请求(用于下载)。 **RESTful风格** RESTful风格的Web服务设计强调资源的概念,通过HTTP方法(如GET、POST、PUT、DELETE)来操作这些资源。在...
HttpClient 入门和实战 HttpClient 是一个基于 HTTP/1.1 协议的客户端编程工具,可以用来发送 ...它们可以一起使用,例如使用 HttpClient 上传文件到 FastDFS 中,然后使用 FastDFS 提供的文件访问功能来下载文件。
HttpClient 4 版本引入了许多改进,使得文件上传变得更加简单和高效。在这个主题中,我们将深入探讨HttpClient 4如何实现文件上传,以及相关的核心概念和技术。 首先,我们需要了解HttpClient 4的基本用法。...
在这个特定的场景中,我们利用HttpClient来从指定的URL下载文件到本地。以下是对这个主题的详细阐述: 1. **HttpClient介绍**: HttpClient是一个Java库,支持HTTP/1.1协议以及部分HTTP/2特性。它提供了一组高级...
在Android应用中,使用HttpClient库可以实现文件上传。首先,创建一个`HttpPost`对象,设置目标URL。接着,创建`MultipartEntityBuilder`,添加`FileBody`表示要上传的文件和`StringBody`表示其他参数。最后,将...
在这个场景中,我们主要关注如何使用HttpClient进行文件上传。 文件上传通常涉及到Web服务器与客户端之间的交互,比如用户通过网页上传图片或文档到服务器。HttpClient库提供了一个方便的接口来实现这种功能。以下...
在本示例中,我们将深入探讨如何使用HttpClient的PostMethod来上传文件,以及处理Get和Post请求中的乱码问题。 一、HttpClient基础 HttpClient库提供了一套完整的API,允许我们构建复杂的HTTP请求。它支持GET、POST...