HTTPClient 跨服务器传递数据!

简介: HTTPClient 跨服务器传递数据!

首先:
引入工具类: 可以自行添加/修改

public class Constants {
    public static final String TEST = "http://127.0.0.1:8080";
    public static final String PRODUCT_MANAGEMENT_HOST = "http://127.0.0.1:8090";

}

引入HttpClient支持:

@Autowired
private RestTemplate restTemplate;

1.查询数据 :getForEntity(url,Object.class)

  参数一: 需要调用服务的地址(可以携带数据)
  参数二:String.class表示我希望返回的body类型是String
  返回值类型: ResponseEntity*<*T*>*  或 ResponseEntity*<*T*>*
 @GetMapping("/findProductByPage")
    public ResponseEntity<String> findProductByPage(Integer page, Integer rows,Product product){
        HttpStatus statusCode = null;
        try {
            String url = Constants.PRODUCT_MANAGEMENT_HOST+ "/product/findProductByPage?page="+page+"&rows="+rows+"&product="+product;
            ResponseEntity<String> entity = restTemplate.getForEntity(url, String.class);//跨服务器访问
            statusCode = entity.getStatusCode();//获取状态码
            String body = entity.getBody(); //获取返回数据
            return new ResponseEntity<>(body,statusCode);
        } catch (Exception e) {
            e.printStackTrace();
            return new ResponseEntity<>(statusCode);
        }
    }

2.保存数据: postForEntity(url,pojo,Object.class)
参数一:同上
参数二:传递的数据
参数三:同上
*注意:该方法传递给跨服务器是 方法参数上需要加上@RequestBody 否则无法接受到数据

@PostMapping("/saveProduct")
   public ResponseEntity<String> saveProduct(Product product){
       HttpStatus statusCode =null;
       try {
           JSONObject proJson = JSONObject.fromObject(product);
           String prodct = proJson.toString();
           String url = Constants.PRODUCT_MANAGEMENT_HOST+"/product/saveProduct";
           ResponseEntity<String> entity = restTemplate.postForEntity(url, prodct, String.class);
           String body = entity.getBody();
           statusCode = entity.getStatusCode();
           return new ResponseEntity<>(HttpStatus.CREATED);
       } catch (Exception e) {
           e.printStackTrace();
           return new ResponseEntity<>(statusCode);
       }
   }

//全部类:我使用的--->勿喷

@RestController
@RequestMapping("/product")
public class ProductController {

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/findProductByPage")
    public ResponseEntity<String> findProductByPage(Integer page, Integer rows,Product product){
        HttpStatus statusCode = null;
        try {
            String url = Constants.PRODUCT_MANAGEMENT_HOST+ "/product/findProductByPage?page="+page+"&rows="+rows+"&product="+product;
            ResponseEntity<String> entity = restTemplate.getForEntity(url, String.class);
            statusCode = entity.getStatusCode();//获取状态码
            String body = entity.getBody(); //获取返回数据
            return new ResponseEntity<>(body,statusCode);
        } catch (Exception e) {
            e.printStackTrace();
            return new ResponseEntity<>(statusCode);
        }
    }

    @PostMapping("/saveProduct")
    public ResponseEntity<String> saveProduct(Product product){
        HttpStatus statusCode =null;
        try {
            JSONObject proJson = JSONObject.fromObject(product);
            String prodct = proJson.toString();
            String url = Constants.PRODUCT_MANAGEMENT_HOST+"/product/saveProduct";
            ResponseEntity<String> entity = restTemplate.postForEntity(url, prodct, String.class);
            String body = entity.getBody();
            statusCode = entity.getStatusCode();
            return new ResponseEntity<>(HttpStatus.CREATED);
        } catch (Exception e) {
            e.printStackTrace();
            return new ResponseEntity<>(statusCode);
        }
    }
}
目录
相关文章
|
25天前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
39 3
|
18天前
|
存储 运维 算法
服务器数据恢复—raid6阵列硬盘重组raid5阵列如何恢复raid6阵列数据?
服务器存储数据恢复环境: 存储中有一组由12块硬盘组建的RAID6阵列,上层linux操作系统+EXT3文件系统,该存储划分3个LUN。 服务器存储故障&分析: 存储中RAID6阵列不可用。为了抢救数据,运维人员使用原始RAID中的部分硬盘重新组建RAID并进行了初始化。 初始化开始一段时间后,运维人员察觉到情况有异后强制终止初始化,这个时候初始化已经完成一半以上。数据部分已被不可逆的破坏。
|
2月前
|
存储 数据挖掘
服务器数据恢复—用RAID5阵列中部分盘重建RAID5如何恢复原raid5阵列数据?
服务器数据恢复环境: 一台服务器挂接一台存储,该存储中有一组由5块硬盘组建的RAID5阵列。 服务器故障: 存储raid5阵列中有一块硬盘掉线。由于RAID5的特性,阵列并没有出现问题。工作一段时间后,服务器出现故障,用户方请人维修。维修人员在没有了解故障磁盘阵列环境的情况下,用另外4块硬盘(除去掉线的硬盘)重新创建了一组全新的RAID5阵列并完成数据同步,导致原raid5阵列数据全部丢失。
|
3月前
|
存储 弹性计算 缓存
阿里云服务器ECS通用型实例规格族特点、适用场景、指标数据解析
阿里云服务器ECS提供了多种通用型实例规格族,每种规格族都针对不同的计算需求、存储性能、网络吞吐量和安全特性进行了优化。以下是对存储增强通用型实例规格族g8ise、通用型实例规格族g8a、通用型实例规格族g8y、存储增强通用型实例规格族g7se、通用型实例规格族g7等所有通用型实例规格族的详细解析,包括它们的核心特点、适用场景、实例规格及具体指标数据,以供参考。
阿里云服务器ECS通用型实例规格族特点、适用场景、指标数据解析
|
2月前
|
Python
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
这篇博客文章是关于如何使用Flask框架上传特征值数据到服务器端,并将其保存为txt文件的教程。
34 0
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
|
3月前
|
存储 弹性计算 安全
阿里云服务器ECS计算型实例规格族特点、适用场景、指标数据参考
阿里云服务器ECS提供了丰富的计算型实例规格族,专为满足不同场景下的高性能计算需求而设计。包括计算型实例规格族c8y、计算型实例规格族c7、计算型实例规格族c8i等热门计算型实例规格,以及网络增强型的c7nex、密集计算型的ic5等其他计算型实例规格,每一种规格族都经过精心优化,确保在计算性能、存储效率、网络吞吐和安全特性等方面达到最佳平衡。本文将详细解析阿里云服务器ECS中的多个计算型实例规格族,包括它们的核心特点、适用场景、实例规格及具体指标数据,为用户在云计算资源选型时提供全面参考。
阿里云服务器ECS计算型实例规格族特点、适用场景、指标数据参考
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
71 3
|
2月前
|
弹性计算 Linux 数据库
阿里云国际版如何迁移Linux云服务器系统盘中的数据
阿里云国际版如何迁移Linux云服务器系统盘中的数据
|
7月前
|
数据采集 中间件 Python
Scrapy爬虫:利用代理服务器爬取热门网站数据
Scrapy爬虫:利用代理服务器爬取热门网站数据
|
3月前
|
存储 弹性计算 网络协议
阿里云ECS内存型实例规格族特点、适用场景、指标数据参考
阿里云ECS提供了多样化的内存型实例规格族,专为需要高性能内存资源的应用场景设计。从最新的r8a系列到经过优化的re6p系列,旨在提供稳定、高效且安全的计算环境。这些实例不仅具备强大的计算性能与内存配比,还通过支持ESSD云盘和高效网络协议,显著提升了存储I/O能力和网络带宽,适用于大数据分析、高性能数据库、内存密集型应用等多种场景,为用户带来卓越的计算体验。本文将详细解析阿里云ECS中的多个内存型实例规格族,包括它们的核心特点、适用场景、实例规格及具体指标数据,为用户在云计算资源选型时提供参考。