diff --git a/src/main/java/mpms/common/forward/NodeForward.java b/src/main/java/mpms/common/forward/NodeForward.java index 5641883b964800e908d9c09fde65aadbbea783b3..187122b56d26dcc06fdb80aea48976afbd510d6b 100644 --- a/src/main/java/mpms/common/forward/NodeForward.java +++ b/src/main/java/mpms/common/forward/NodeForward.java @@ -204,6 +204,46 @@ public class NodeForward { return jsonMessage.getData(tClass); } + /** + * 普通消息转发,并解析数据 + * + * @param nodeModel 节点 + * @param nodeUrl 节点的url + * @param tClass 要解析的类 + * @param 泛型 + * @param name 参数名 + * @param parameters 其他参数 + * @param value 值 + * @return T + */ + public static T requestData(NodeModel nodeModel, NodeUrl nodeUrl, Class tClass, String name, Object value, Object... parameters) { + String url = nodeModel.getRealUrl(nodeUrl); + // + HttpRequest httpRequest = HttpUtil.createPost(url); + if (name != null && value != null) { + httpRequest.form(name, value, parameters); + } + // + addUser(httpRequest, nodeModel, nodeUrl); + HttpResponse response; + try { + // + response = httpRequest + .execute(); + } catch (Exception e) { + /** + * + * revert version and add log print + * + */ + DefaultSystemLog.getLog().error("node [{}] connect failed", nodeModel.getName(), e); + throw new AgentException(nodeModel.getName() + "节点异常:" + e.getMessage()); + } + + JsonMessage jsonMessage = parseBody(response); + return jsonMessage.getData(tClass); + } +