Springboot 接口对接文件及对象的操作方法

 更新时间:2023年07月05日 14:35:30   作者:心寒丶  
这篇文章主要介绍了Springboot 接口对接文件及对象的操作,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

两个sprongboot项目实现文件对接,在传入文件同时传递其他对象信息,比如接口如下

一、创建文件

例如在D盘下创建1.txt,里边写入内容

1、传送方代码实现

 
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.接收方代码实现

 
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 接口对接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java 实现DES 加密解密的示例

    java 实现DES 加密解密的示例

    这篇文章主要介绍了java 实现DES 加密解密的示例代码,帮助大家更好的理解和使用Java进行加解密,感兴趣的朋友可以了解下
    2020-12-12
  • SpringMVC使用第三方组件实现文件上传

    SpringMVC使用第三方组件实现文件上传

    这篇文章主要介绍了SpringMVC使用第三方组件实现文件上传,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • JPA之映射mysql text类型的问题

    JPA之映射mysql text类型的问题

    这篇文章主要介绍了JPA之映射mysql text类型的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • SpringBoot如何监控Redis中某个Key的变化(自定义监听器)

    SpringBoot如何监控Redis中某个Key的变化(自定义监听器)

    这篇文章主要介绍了SpringBoot如何监控Redis中某个Key的变化(自定义监听器),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 浅谈@FeignClient中name和value属性的区别

    浅谈@FeignClient中name和value属性的区别

    这篇文章主要介绍了@FeignClient中name和value属性的区别,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • IDEA如何解决properties文件乱码问题

    IDEA如何解决properties文件乱码问题

    IDEA编辑器中打开properties文件时出现中文乱码,可以通过修改文件编码格式来解决,具体步骤为:设置》Setting》Editor》FileEncodings,将编码格式更改为UTF-8
    2025-01-01
  • Spring AOPr如何打通两个切面之间的通信

    Spring AOPr如何打通两个切面之间的通信

    本文主要介绍了Spring AOPr如何打通两个切面之间的通信,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • Java语言实现最大堆代码示例

    Java语言实现最大堆代码示例

    这篇文章主要介绍了Java语言实现最大堆代码示例,具有一定参考价值,需要的朋友可以了解下。
    2017-12-12
  • Java中的StringTokenizer实现字符串切割详解

    Java中的StringTokenizer实现字符串切割详解

    这篇文章主要介绍了Java中的StringTokenizer实现字符串切割详解,java.util工具包提供了字符串切割的工具类StringTokenizer,Spring等常见框架的字符串工具类(如Spring的StringUtils),需要的朋友可以参考下
    2024-01-01
  • 常用Maven库,镜像库及maven/gradle配置(小结)

    常用Maven库,镜像库及maven/gradle配置(小结)

    这篇文章主要介绍了常用Maven库,镜像库及maven/gradle配置(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12

最新评论