springboot发送request请求的方式小结

 更新时间:2024年09月09日 08:49:13   作者:码里法  
在Java中,发送HTTP请求是常见需求,hutool工具包和RestTemplate类是实现此功能的两种主流方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

java发送请求的方法有很多,这里只介绍两种。

hutool和RestTemplate

下边提供两种后端发送请求的方式,一个是基于hutool工具的,一个是基于RestTemplate的,为什么要写这两种呢,因为有的时候用hutool的方式不太管用,有的时候用RestTemplate也不太管用,所以就且换着用,谁能用,用谁。

hutool方式

get请求

	@GetMapping("/userEleList")
    @ResponseBody
    public JSONObject userEleList(@RequestParam(name = "userCode") String userCode, HttpServletRequest request) {
        String Authorization = request.getHeader("Authorization");
        String token = request.getHeader("token");
        String body = HttpUtil.createGet("http://ip:8068/userEleList?userCode=" + userCode)
                .header("Authorization", Authorization)
                .header("token", token)
                .execute()
                .body();
        return JSONObject.parseObject(body);
    }
	@GetMapping("/getKdToken")
    @ResponseBody
    public JSONObject userEleList(@RequestParam(name = "appId") String appId,
                                  @RequestParam(name = "appSecret") String appSecret,
                                  @RequestParam(name = "grantType") String grantType) {
        String post = HttpUtil.get("http://ip:8068/getKdToken?appId=" + appId + "&appSecret=" + appSecret + "&grantType=" + grantType);
        return JSONObject.parseObject(post);
    }

post请求

	@PostMapping("/eleRechargeMoneyAllList")
    @ResponseBody
    public JSONObject eleRechargeMoneyAllList(@RequestBody Map<String, Object> map, HttpServletRequest request) {
        String Authorization = request.getHeader("Authorization");
        String token = request.getHeader("token");
        Object elemeterId = map.get("elemeterId");
        Object money = map.get("money");
        Object selOrderno = map.get("selOrderno");
        String post = HttpUtil
                .createPost("http://ip:8068/eleRechargeMoneyAllList?elemeterId=" + elemeterId + "&money=" + money + "&adds=0&selOrderno=" + selOrderno + "&payType=40")
                .header("Authorization", Authorization)
                .header("token", token)
                .execute()
                .body();
        return JSONObject.parseObject(post);
    }
	@PostMapping("/GetClientByCnumber")
	@ResponseBody
	 public JSONObject GetClientByCnumber(@RequestBody Map&lt;String, Object&gt; map) {
	     String post = HttpUtil.post("http://ip:8006/GetClientByCnumber", map);
	     return JSONObject.parseObject(post);
	 }

RestTemplate方式

	@PostMapping("/userPricePay")
	@ResponseBody
	public JSONObject userPricePay(@RequestBody Map<String, Object> map, HttpServletRequest request) {
		   String sign = request.getHeader("sign");
		   RestTemplate restTemplate = new RestTemplate();
		   // 设置请求头,指定Content-Type为application/json
		   HttpHeaders headers = new HttpHeaders();
		   headers.setContentType(MediaType.APPLICATION_JSON);
		//        headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
		   headers.set("sign", sign);
		   // 将解析后的 JSON 对象转换为 MultiValueMap
		   HttpEntity<Map<String, Object>> requestEntity = new HttpEntity<>(map, headers);
		   ResponseEntity<String> exchange = restTemplate.exchange("https://ip:8080/userPricePay", HttpMethod.POST, requestEntity, String.class);
		   return JSONObject.parseObject(exchange.getBody());
	}

到此这篇关于springboot发送request请求的方式小结的文章就介绍到这了,更多相关springboot发送request请求内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java反射根据不同方法名动态调用不同的方法(实例)

    Java反射根据不同方法名动态调用不同的方法(实例)

    下面小编就为大家带来一篇Java反射根据不同方法名动态调用不同的方法(实例)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • SpringBoot整合MQTT小结汇总

    SpringBoot整合MQTT小结汇总

    MQTT 客户端是运行 MQTT 库并通过网络连接到 MQTT 代理的任何设备,是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于 TCP/IP 协议上,由 IBM 于 1999 年发明,对SpringBoot整合MQTT相关知识感兴趣的朋友一起看看吧
    2022-01-01
  • Mybatis中<if>和<choose>的区别及“=”判断方式

    Mybatis中<if>和<choose>的区别及“=”判断方式

    这篇文章主要介绍了Mybatis中<if>和<choose>的区别及“=”判断方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • 详解Java动态加载数据库驱动

    详解Java动态加载数据库驱动

    本篇文章主要介绍了详解Java动态加载数据库驱动,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 优化Java内存管理来防止“GC”错误的方法详解

    优化Java内存管理来防止“GC”错误的方法详解

    垃圾回收(GC)是 Java 中的一个重要机制,它可以管理内存并回收不再使用的对象所占用的资源,在本文中,我们将探讨一些技巧,帮助您避免这一错误,确保您的 Java 应用程序顺利运行,需要的朋友可以参考下
    2023-11-11
  • mybatis修改int型数据无法修改成0的解决

    mybatis修改int型数据无法修改成0的解决

    这篇文章主要介绍了mybatis修改int型数据无法修改成0的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • MyBatis动态SQL foreach标签实现批量插入的方法示例

    MyBatis动态SQL foreach标签实现批量插入的方法示例

    这篇文章主要介绍了MyBatis动态SQL foreach标签实现批量插入的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 浅析Java和Scala中的Future

    浅析Java和Scala中的Future

    这篇文章主要介绍了Java和Scala中的Future的相关资料,需要的朋友可以参考下
    2017-10-10
  • 基于JSON实现传输byte数组过程解析

    基于JSON实现传输byte数组过程解析

    这篇文章主要介绍了基于JSON实现传输byte数组过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • logback日志输出格式设置方式

    logback日志输出格式设置方式

    这篇文章主要介绍了logback日志输出格式设置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04

最新评论