SpringCloud服务间的调用有两种方式:RestTemplate和FeignClient。不管是什么方式,他都是通过REST接口调用服务的http接口,参数和结果默认都是通过json序列化和反序列化。因为Spring MVC的RestController定义的接口,返回的数据都是通过Json序列化成JSON数据。
此文章基于上一篇文章的工程
使用RestTemplate进行服务消费
一:编写服务提供者
我们在Mall_WechatService模块编写服务提供者,有三个mapping分别提供get请求,post请求接收json格式的字符串,post请求接收map格式的数据
@Controller
public class ProduceHelloController {
private final Logger logger= LoggerFactory.getLogger(this.getClass());
//get请求
@ResponseBody
@RequestMapping("/helloA")
public String sayHelloA(){
Map<String,Object> map = new HashMap<String,Object>();
map.put("name","king james");
map.put("age",33);
map.put("team","Cleveland Cavaliers");
logger.info(JSON.toJSONString(map));
return JSON.toJSONString(map);
}
//POST请求发送json格式的数据
@ResponseBody
@RequestMapping("/helloB")
public String sayHelloB(@RequestBody(required = false)String requestJson){
try{
JSONObject jsonObject = JSON.parseObject(requestJson);
logger.info("helloB"+requestJson);
return requestJson;
}
catch (Exception e){
logger.info("发生了异常:"+e.getMessage());
return "error";
}
}
//POST请求用Map接收
@