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框架中發送http請求–RestTemplate](

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章