private void handleCartItems(List<CartVO> vos) {
// 1.獲取商品id
Set<Long> itemIds = vos.stream().map(CartVO::getItemId).collect(Collectors.toSet());
// 2.查詢商品
ResponseEntity<List<ItemDTO>> response = restTemplate.exchange( // 傳送http請求
"http://localhost:8081/items?ids={ids}", // URL
HttpMethod.GET, // get請求
null, // null表示沒有提供HttpHeaders(請求頭)和HttpEntity(請求體)作為請求的正文
// 下面這行本來是傳一個class的位元組碼,但是我需要的是一個ItemDTO型別的List,所以位元組碼就不行了
// 所以採用new一個ParameterizedTypeReference,並把物件型別放到尖括號裡面,不能寫List<ItemDTO>.class哦,沒有這種寫法
new ParameterizedTypeReference<List<ItemDTO>>() {}, // 響應體
Map.of("ids", CollUtils.join(itemIds, ","))
// 使用Map.of建立一個包含單個鍵值對的不可變Map。鍵是"ids",值是透過CollUtils.join(itemIds, ",")方法生成的
// 這個方法將itemIds列表中的元素用逗號連線成一個字串。
);
// 解析http請求
if(!response.getStatusCode().is2xxSuccessful()) return; // 如果2xx狀態碼不成功,直接結束
List<ItemDTO> items = response.getBody();
if (CollUtils.isEmpty(items)) {
return;
}
// 3.轉為 id 到 item的map
Map<Long, ItemDTO> itemMap = items.stream().collect(Collectors.toMap(ItemDTO::getId, Function.identity()));
// 4.寫入vo
for (CartVO v : vos) {
ItemDTO item = itemMap.get(v.getItemId());
if (item == null) {
continue;
}
v.setNewPrice(item.getPrice());
v.setStatus(item.getStatus());
v.setStock(item.getStock());
}
}
java傳送http請求
相關文章
- java傳送http的get、post請求JavaHTTP
- perl傳送http請求HTTP
- 使用httpclient傳送http請求HTTPclient
- 使用Feign傳送HTTP請求HTTP
- python傳送HTTP POST請求PythonHTTP
- .net 後臺 傳送http請求HTTP
- Java傳送Post請求Java
- 在Java中,使用HttpUtils實現傳送HTTP請求JavaHTTP
- 使用requests庫來傳送HTTP請求HTTP
- nodejs使用request傳送http請求NodeJSHTTP
- 【轉】怎麼用PHP傳送HTTP請求(POST請求、GET請求)?PHPHTTP
- Go使用net/http庫傳送GET請求GoHTTP
- Go HTTP GET 請求可以傳送 body 嗎GoHTTP
- PHP 傳送 HTTP 請求的幾種方式PHPHTTP
- Windows Phone 8.1 傳送http 網路請求。WindowsHTTP
- php curl_multi批量傳送http請求PHPHTTP
- Delphi 通過IdHTTP 傳送Http請求到Java 後臺HTTPJava
- java傳送GET和post請求Java
- 理解ASP.NET Core - 傳送Http請求(HttpClient)ASP.NETHTTPclient
- wireshark抓包curl傳送http2請求HTTP
- 使用 request 和 cheerio 庫來傳送 HTTP 請求HTTP
- oracle使用utl_http包傳送post請求OracleHTTP
- java傳送post請求 ,請求資料放到body裡Java
- Java用HttpClient3傳送http/https協議get/post請求,傳送map,jsoJavaHTTPclient協議JS
- Jmeter —— jmeter利用取樣器中http傳送請求JMeterHTTP
- Postman傳送Post請求Postman
- 傳送GET請求 示例
- HttpClient--傳送請求HTTPclient
- HTTP GET請求傳bodyHTTP
- 如何傳送請求以及AJAX
- C# 傳送POST請求C#
- 使用HttpClient傳送GET請求HTTPclient
- 【python介面自動化】- 使用requests庫傳送http請求PythonHTTP
- 如何檢視 Chrome 外掛傳送的 HTTP 請求(或 localStorage)?ChromeHTTP
- 在ASP.NET Core中用HttpClient(三)——傳送HTTP PATCH請求ASP.NETHTTPclient
- Java用HttpClient3傳送http/https協議get/post請求,傳送map,json,xml,txt資料JavaHTTPclient協議JSONXML
- SpringMVC中如何傳送GET請求、POST請求、PUT請求、DELETE請求。SpringMVCdelete
- Zttp 傳送 form params 請求 而非 JSON 請求ORMJSON