博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTTPClient 跨服务器传递数据!
阅读量:5958 次
发布时间:2019-06-19

本文共 3533 字,大约阅读时间需要 11 分钟。

首先:

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

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支持:

@Autowiredprivate RestTemplate restTemplate;

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

参数一: 需要调用服务的地址(可以携带数据)  参数二:String.class表示我希望返回的body类型是String  返回值类型: ResponseEntity*<*T*>*  或 ResponseEntity*<*T*>*
@GetMapping("/findProductByPage")    public ResponseEntity
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
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
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
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
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
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
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
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); } }}

转载地址:http://yprxx.baihongyu.com/

你可能感兴趣的文章
hdu1711
查看>>
使用sun.misc.BASE64Decoder出错解决方案
查看>>
转 通过phpize为php在不重新编译php情况下安装模块openssl
查看>>
实现 Sunday 算法
查看>>
关于mac mini组装普液晶显示器
查看>>
c# winform项目用到的部分知识点总结
查看>>
stdafx
查看>>
cuda编程知识普及
查看>>
JS声明语句提升与作用域
查看>>
非抢占式RCU实现(二),解释:为什么 RCU_NEXT_SIZE 宏值是4?
查看>>
在虚拟机的linux中利用VMware Tools实现与windows共享文件
查看>>
Windows下配置Java环境变量
查看>>
leetcode -- Candy
查看>>
几种减小javascript对性能影响的方法
查看>>
PHP常用库函数介绍+常见疑难问题解答
查看>>
ios 自定义UITableView中分组的标题sectionview
查看>>
Installing haproxy load balancing for http and https--转载
查看>>
iPhone-获取网络数据或者路径的文件名
查看>>
FORMAT格式
查看>>
启动Tomcat的时候遇到错误
查看>>