1、代码示例
package com.bst.controller.acceptance;
import cn.hutool.http.HttpException;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.nacos.api.config.annotation.NacosValue;
import com.bst.common.core.controller.BaseController;
import com.bst.common.core.domain.AjaxResult;
import com.bst.common.utils.SecurityUtils;
import com.bst.system.domain.MsgContent;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
/**
* @Author: bst
* @Date: 2021/04/18
*/
@Api(tags = "远程调用消息模块代码")
@RestControllerbbb
@RequestMapping("/aaa/bbb")
public class MsgController extends BaseController {
@NacosValue(value = "${ipHost.msg}", autoRefreshed = true)
private String msgIpHost;
/**
* 获取消息列表
*/
@PostMapping("/list")
public String list(HttpServletRequest request, @RequestBody MsgContent msgContent)
{
//获取当前服务器地址
String url = msgIpHost+"/msg/notice/list";
String token = request.getHeader("Authorization");
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("readState",msgContent.getReadState());
paramMap.put("msgType",msgContent.getMsgType());
paramMap.put("pageNum",msgContent.getPageNum());
paramMap.put("pageSize",msgContent.getPageSize());
paramMap.put("receiveId", SecurityUtils.getLoginUser().getUserId());
String result = "";
try {
result = HttpRequest
.post(url)
.header("Authorization",token)
.body(JSONObject.toJSONString(paramMap))
.execute()
.body();
}catch (Exception e){
return JSONObject.toJSONString(AjaxResult.error("连接消息模块异常"));
}
return result;
}
@PutMapping("/updateMsgStatus")
public String updateMsgStatus(HttpServletRequest request,@RequestBody MsgContent msgContent){
String token = request.getHeader("Authorization");
String res="";
try {
res = HttpRequest.put(msgIpHost+"/msg/notice/updateMsgStatus")
.header("Authorization", token)
.body(JSONObject.toJSONString(msgContent))
.execute()
.body();
} catch (HttpException e) {
return JSONObject.toJSONString(AjaxResult.error("连接消息模块异常"));
}
return res;
}
}
2、代码解析
从nacos的配置中获取msgIpHost的值。
拼接调用的接口地址(http协议),以及token,参数等等,最终调用execute()方法,body()方法取返回的值即可。