开发中,最常用的是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 }