開發中,最常用的是post、get這兩種。今天我給大家展示一個利用put請求的demo,其實put請求跟post請求沒啥區別,但是沒有返回值。
void put(String var1, @Nullable Object var2, Object... var3) throws RestClientException; void put(String var1, @Nullable Object var2, Map<String, ?> var3) throws RestClientException; void put(URI var1, @Nullable Object var2) throws RestClientException;
下面就是demo(表現層代碼就不寫在這里了,業務邏輯層的代碼給大家展示)。
1 package com.ecshop.service.impl; 2 3 import com.alibaba.fastjson.JSON; 4 import com.ecshop.common.dto.CreateOrderRequestDTO; 5 import com.ecshop.common.dto.OrderDto; 6 import com.ecshop.common.enums.ECShopErrorCodeEnum; 7 import com.ecshop.common.request.OrderCancelRequest; 8 import com.ecshop.common.util.ErrorResultInstallUtils; 9 import com.ecshop.service.OrderService; 10 import com.ecshop.service.client.PhpClient; 11 import com.ecshop.service.client.dto.request.OrderRequestDTO; 12 import com.ecshop.service.client.dto.response.BaseResponseDTO; 13 import com.ecshop.service.client.dto.response.OrderResponseDTO; 14 import lombok.extern.slf4j.Slf4j; 15 import org.dozer.DozerBeanMapper; 16 import org.dozer.Mapper; 17 import org.springframework.beans.BeanUtils; 18 import org.springframework.beans.factory.annotation.Autowired; 19 import org.springframework.http.HttpEntity; 20 import org.springframework.http.HttpHeaders; 21 import org.springframework.http.HttpMethod; 22 import org.springframework.http.MediaType; 23 import org.springframework.stereotype.Service; 24 import org.springframework.web.client.RestTemplate; 25 import result.Result; 26 27 import java.util.Objects; 28 29 /** 30 * @Author: zp 31 * @Date: 2019/4/16 17:20 32 * @Description: 33 */ 34 @Slf4j 35 @Service 36 public class OrderServiceImpl implements OrderService { 37 38 private static final String Order_Cancel_Url = "http://localhost:10002"; 39 40 @Autowired 41 private RestTemplate restTemplate; 42 43 44 45 @Override 46 public Result cancelOrder(OrderDto dto) { 47 Result result = Result.success(); 48 String merSn = dto.getMerSn(); 49 OrderCancelRequest request = new OrderCancelRequest(); 50 BeanUtils.copyProperties(dto,request); 51 log.info("取消訂單請求實體類:"+JSON.toJSON(request)); 52 String jsonObj = JSON.toJSONString(request); 53 HttpHeaders headers = new HttpHeaders(); 54 headers.setContentType(MediaType.APPLICATION_JSON_UTF8); 55 HttpEntity<String> httpEntity = new HttpEntity(jsonObj,headers); 56 String requestUrl = Order_Cancel_Url+"/order/{merSn}/cancel"; 57 log.info("取消訂單請求Url:"+requestUrl); 58 try { 59 restTemplate.put(requestUrl,httpEntity,merSn); 60 }catch (Exception e){ 61 log.error("訂單取消失敗",e); 62 return Result.fail("訂單取消失敗,請聯系客服人員"); 63 } 64 return result; 65 } 66 67 68 }