Springboot 接口對接文件及對象的操作方法
兩個(gè)sprongboot項(xiàng)目實(shí)現(xiàn)文件對接,在傳入文件同時(shí)傳遞其他對象信息,比如接口如下

一、創(chuàng)建文件
例如在D盤下創(chuàng)建1.txt,里邊寫入內(nèi)容

1、傳送方代碼實(shí)現(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.接收方代碼實(shí)現(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("文件內(nèi)容為:"+s);
System.out.println("文件名稱:"+file.getOriginalFilename());
System.out.println("對象內(nèi)容:"+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、測試
界面輸入傳送方項(xiàng)目路徑,比如:http://localhost:8082/send/sendFile
界面返回信息

接收方控制臺輸出

到此這篇關(guān)于Springboot 接口對接文件及對象的操作方法的文章就介紹到這了,更多相關(guān)Springboot 接口對接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringMVC使用第三方組件實(shí)現(xiàn)文件上傳
這篇文章主要介紹了SpringMVC使用第三方組件實(shí)現(xiàn)文件上傳,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
SpringBoot如何監(jiān)控Redis中某個(gè)Key的變化(自定義監(jiān)聽器)
這篇文章主要介紹了SpringBoot如何監(jiān)控Redis中某個(gè)Key的變化(自定義監(jiān)聽器),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
淺談@FeignClient中name和value屬性的區(qū)別
這篇文章主要介紹了@FeignClient中name和value屬性的區(qū)別,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
Java中的StringTokenizer實(shí)現(xiàn)字符串切割詳解
這篇文章主要介紹了Java中的StringTokenizer實(shí)現(xiàn)字符串切割詳解,java.util工具包提供了字符串切割的工具類StringTokenizer,Spring等常見框架的字符串工具類(如Spring的StringUtils),需要的朋友可以參考下2024-01-01
常用Maven庫,鏡像庫及maven/gradle配置(小結(jié))
這篇文章主要介紹了常用Maven庫,鏡像庫及maven/gradle配置(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

