欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring boot 发送 http post 请求

程序员文章站 2024-01-20 19:02:28
...

spring boot 发送 http post 请求

  • 使用 Restemplate 来发送HTTP请求
  • 使用 LinkedMultiValueMap 传递数据
  • 使用 HttpHeaders 设置请求头
  • 使用 HttpEntity 设置请求体
@RequestMapping(value = "/BalDetail",method = RequestMethod.POST)
    public JSONObject CreateIssueBalanceDetail(int price,String type,String uid,String path){

        //请求路径
        String url = "https://moneydog.club:3336/History/"+path;
        //使用Restemplate来发送HTTP请求
        RestTemplate restTemplate = new RestTemplate();
        // json对象
        JSONObject jsonObject = new JSONObject();
		
        // LinkedMultiValueMap 有点像JSON,用于传递post数据,网络上其他教程都使用 
        // MultiValueMpat<>来传递post数据
        // 但传递的数据类型有限,不能像这个这么灵活,可以传递多种不同数据类型的参数
        LinkedMultiValueMap body=new LinkedMultiValueMap();
        body.add("price",price);
        body.add("type",type);
        body.add("uid",uid);
        
        //设置请求header 为 APPLICATION_FORM_URLENCODED
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        
        // 请求体,包括请求数据 body 和 请求头 headers
        HttpEntity httpEntity = new HttpEntity(body,headers);

        
        try {
            //使用 exchange 发送请求,以String的类型接收返回的数据
            //ps,我请求的数据,其返回是一个json
            ResponseEntity<String> strbody = restTemplate.exchange(url,HttpMethod.POST,httpEntity,String.class);
			//解析返回的数据
            JSONObject jsTemp = JSONObject.parseObject(strbody.getBody());
            System.out.println(jsonObject.toJSONString());
            return jsTemp;

        }catch (Exception e){
            System.out.println(e);
        }
        return  null;
    }

使用postman测试:

spring boot 发送 http post 请求

引用

[Spring框架中发送http请求–RestTemplate](