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](