Springboot 接口對接文件及對象的操作方法
兩個sprongboot項目實現(xiàn)文件對接,在傳入文件同時傳遞其他對象信息,比如接口如下
一、創(chuàng)建文件
例如在D盤下創(chuàng)建1.txt,里邊寫入內容
1、傳送方代碼實現(xiàn)
import org.springframework.core.io.FileSystemResource; import org.springframework.http.*; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; import java.io.File; /** * Created by HJ */ @RestController @RequestMapping("/send") public class test { @GetMapping("/sendFile") public ResponseEntity<String> sendFile( ){ //接口地址 String remote_url="http://localhost:8081/receiv/receivFile"; File file=new File("D:\\1.txt"); RestTemplate restTemplate = new RestTemplate(); MultiValueMap<String, Object> body = new LinkedMultiValueMap<>(); body.add("file", new FileSystemResource(new File("D:\\1.txt"))); Student student= new Student(1,"張三",12); body.add("student",student); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.MULTIPART_FORM_DATA); HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers); ResponseEntity<String> response = restTemplate.exchange(remote_url, HttpMethod.POST, requestEntity, String.class); return response; } static class Student { private int id; private String name; private int age; public Student(int id,String name,int age){ this.id=id; this.name=name; this.age=age; } public Student(){ } public int getId(){ return id; } public String getName(){ return name; } public int getAge(){ return age; } @Override public String toString(){ return id+" "+name+" "+age; } public void setId(int id){ this.id=id; } public void setName(String name){ this.name=name; } public void setAge(int age){ this.age=age; } } }
2.接收方代碼實現(xiàn)
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; /** * Created by HJ */ @RestController @RequestMapping("/receiv") public class testb { @RequestMapping(value = "/receivFile", method = RequestMethod.POST) public String receivFile(@RequestPart("file") MultipartFile file, @RequestPart("student") Student student) throws IOException { byte[] bytes = file.getBytes(); String s = new String(bytes); //InputStream inputStream=file.getInputStream(); System.out.println("文件內容為:"+s); System.out.println("文件名稱:"+file.getOriginalFilename()); System.out.println("對象內容:"+student.toString()); return "對接成功"; } static class Student { private int id; private String name; private int age; public Student(int id,String name,int age){ this.id=id; this.name=name; this.age=age; } public Student(){ } public int getId(){ return id; } public String getName(){ return name; } public int getAge(){ return age; } @Override public String toString(){ return "id:"+id+" name: "+name+" age:"+age; } public void setId(int id){ this.id=id; } public void setName(String name){ this.name=name; } public void setAge(int age){ this.age=age; } } }
3、測試
界面輸入傳送方項目路徑,比如:http://localhost:8082/send/sendFile
界面返回信息
接收方控制臺輸出
到此這篇關于Springboot 接口對接文件及對象的操作方法的文章就介紹到這了,更多相關Springboot 接口對接內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
關于Spring中的@Configuration中的proxyBeanMethods屬性
這篇文章主要介紹了關于Spring中的@Configuration中的proxyBeanMethods屬性,需要的朋友可以參考下2023-07-07Java數(shù)據庫連接池之DBCP淺析_動力節(jié)點Java學院整理
這篇文章主要為大家詳細介紹了Java數(shù)據庫連接池之DBCP的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08Spring使用Configuration注解管理bean的方式詳解
在Spring的世界里,Configuration注解就像是一位細心的園丁,它的主要職責是在這個繁花似錦的園子里,幫助我們聲明和管理各種各樣的bean,本文給大家介紹了在Spring中如何優(yōu)雅地管理你的bean,需要的朋友可以參考下2024-05-05使用mybatis-plus的insert方法遇到的問題及解決方法(添加時id值不存在異常)
這篇文章主要介紹了使用mybatis-plus的insert方法遇到的問題及解決方法(添加時id值不存在異常),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08基于SpringBoot核心原理(自動配置、事件驅動、Condition)
這篇文章主要介紹了基于SpringBoot核心原理(自動配置、事件驅動、Condition),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08Java利用Request請求如何獲取IP地址對應的省份、城市詳解
之前已經給大家介紹了關于Java用Request請求獲取IP地址的相關內容,那么下面這篇文章將給大家進入深入的介紹,關于Java利用Request請求如何獲取IP地址對應省份、城市的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-10-10SpringCloud?Gateway實現(xiàn)請求解密和響應加密的過程解析
這篇文章主要介紹了SpringCloud?Gateway實現(xiàn)請求解密和響應加密的相關知識,本文環(huán)境使用比較新的?Java?17?和?SpringBoot?3.1.5,對應到Spring的版本是?6.0.13,本文重心是網關項目,需要的朋友可以參考下2023-11-11