spring boot 发送 http post 请求

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 请求_第1张图片

引用

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

你可能感兴趣的:(后端)