首页 > 编程语言 >Java - InputStream流Http客户端文件上传

Java - InputStream流Http客户端文件上传

时间:2023-10-26 11:14:19浏览次数:35  
标签:文件 entityBuilder Java httpPost InputStream responseEntity Http

场景:两个系统文件服务不同,需从另外一个系统中下载文件并上传到另外一个系统中。

代码实现

//远程服务下载文件
Response response = fileCenterService.downloadFile(fileId);
InputStream inputStream = response.body().asInputStream();
//调用接口上传到文件服务
HttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(uploadUrl);
MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create();
entityBuilder.addPart("file", new InputStreamBody(inputStream, ContentType.DEFAULT_BINARY, "file.docx"));
HttpEntity httpEntity = entityBuilder.build();
httpPost.setEntity(httpEntity);
httpPost.setHeader("Authorization", "Bearer" + token);
HttpResponse downRes = httpClient.execute(httpPost);
HttpEntity responseEntity = downRes.getEntity();
String responseBody = null;
if (responseEntity != null) {
  responseBody = EntityUtils.toString(responseEntity);
}

标签:文件,entityBuilder,Java,httpPost,InputStream,responseEntity,Http
From: https://www.cnblogs.com/IamHzc/p/17788943.html

相关文章

  • 【Java 进阶篇】JavaScript 正则表达式(RegExp)详解
    JavaScript正则表达式,通常简写为RegExp,是一种强大的文本匹配工具,它允许你通过一种灵活的语法来查找和替换字符串中的文本。正则表达式在编程中用途广泛,不仅限于JavaScript,在许多编程语言中也都有类似的实现。什么是正则表达式正则表达式,简称正则或RegExp,是一个用于描述字符模式......
  • 【Java 进阶篇】JavaScript Math对象详解
    在JavaScript编程中,Math对象是一个非常有用的工具,用于执行各种数学运算。它提供了许多数学函数和常数,可以用于处理数字、执行几何运算、生成随机数等。在本篇博客中,我们将深入探讨JavaScript中Math对象的各种功能和用法。什么是Math对象?Math对象是JavaScript的内置对象之一,它不需要......
  • 【Java 进阶篇】JavaScript 中的全局对象和变量
    JavaScript是一门非常强大的编程语言,它提供了许多全局对象和变量,以便于在整个应用程序中共享数据和功能。本文将详细介绍JavaScript中的全局对象和变量,包括全局对象、全局变量、全局函数以及它们的用途和示例。全局对象JavaScript中有一些全局对象,它们在整个应用程序中都可用。......
  • 【java基础-实战2】数组拷贝的几种实现方式
    在实际的业务开发中,基本上很少很少很少…会遇到数组拷贝的场景,甚至是我们一般都不怎么用数组,List它不香嘛,为啥要用数组。那么现在这个问题有点冷门,要实现数组拷贝,怎么办呢?1、基础写法:循环赋值最简单直接的写法,那就是新建一个数组,一个一个拷贝进去String[]src=newString[]{"a......
  • Java基础 解压缩流、压缩流
     解压缩流就是读取压缩包中的文件,所以它是读,属于输入流压缩流就是把文件中的数据写到压缩包中,所以它是写,属于输出流 压缩包里面的每一个文件或文件夹在Java当中都是一个ZipEntry对象所以解压的本质其实就是把压缩包里面的每一个ZipEntry对象按照层级结构......
  • HttpServletResponse
    2023.10.251.可以设置http头标response.setHeader("Refresh","3");//三秒刷新页面一次2.可以设置cookieCookiec1=newCookie("username","only");response.addCookie(c1);3.可以输出返回数据HttpServleteResponse.getOutputStream().write();......
  • java学习_06
    for循环publicclassday6_01{publicstaticvoidmain(String[]args){//1.循环1~5得到里面的每一个数字//开始条件:1//结束条件:5//用来进行累加的intsum=0;for(inti=1;i<=5;i++){......
  • Java基础 字符打印流
    字符流底层有缓冲区,所以效率更高,想自动刷新需要手动开启 字符打印流的构造方法: 字符打印流的成员方法: 代码示例:PrintWriterpw=newPrintWriter(newFileWriter("E:\\Java基础资料\\b.txt"),true);pw.println("黑马程序员");pw.print("成就it黑马");pw.println();p......
  • java学习_05
    if语句lf语句的第一种格式执行流程:I.首先计算关系表达式的值II.如果关系表达式的值为true就执行语句体III.如果关系表达式的值为false就不执行语句体IV.继续执行后面的其他语句if的注意点:大括号的开头可以另起一行书写,但是建议写在第一行的末尾......
  • Java基础 打印流、字节打印流
      打印流是高级流,也是用来包装基本流的但是打印流不能读,只能写,所以打印流只有输出流 打印流分为两种:PrintStream、PrintWriter两个类1.PrintStream  →  字节打印流2.PrintWriter  →  字符打印流 打印流的特点:1.打印流只能操作文件目的地,不能操作......