From 28c3c1e74aad3e421a315afce48053018bfd77a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=8E?= Date: Thu, 15 May 2025 11:00:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(ic):=20=E5=AE=9E=E7=8E=B0=E4=BA=86?= =?UTF-8?q?=E4=B8=8E=E5=85=B6=E4=BB=96=E7=B3=BB=E7=BB=9F=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?HTTP=20POST=E4=BA=A4=E4=BA=92=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增了HttpPostOtherSysImpl类,实现了IHttpPostOtherSys接口 - 实现了调用LE系统接口的功能,包括获取token和发送POST请求 - 代码中使用了Fastjson、StringUtils等工具库- 异常处理使用了ExceptionUtils进行业务异常包装 --- .../nc/bs/ic/HttpPostOtherSysImpl.java | 89 +++++++++++++++++++ ic/src/public/nc/IHttpPostOtherSys.java | 15 ++++ 2 files changed, 104 insertions(+) create mode 100644 ic/src/private/nc/bs/ic/HttpPostOtherSysImpl.java create mode 100644 ic/src/public/nc/IHttpPostOtherSys.java diff --git a/ic/src/private/nc/bs/ic/HttpPostOtherSysImpl.java b/ic/src/private/nc/bs/ic/HttpPostOtherSysImpl.java new file mode 100644 index 0000000..0f2fd70 --- /dev/null +++ b/ic/src/private/nc/bs/ic/HttpPostOtherSysImpl.java @@ -0,0 +1,89 @@ +package nc.bs.ic; + +import com.alibaba.fastjson.JSONObject; +import nc.IHttpPostOtherSys; +import nc.hr.utils.PubEnv; +import nc.itf.scmpub.reference.uap.para.SysParaInitQuery; +import nc.pub.fa.common.util.StringUtils; +import nc.vo.pubapp.pattern.exception.ExceptionUtils; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +public class HttpPostOtherSysImpl implements IHttpPostOtherSys { + + @Override + public String callLE(String url, JSONObject json) { + String leip = SysParaInitQuery.getParaString(PubEnv.getPk_group(), "LEIP"); +// String leip = "http://60.214.115.166:20003"; + String baseurl = leip + url; + String token = this.getLEToken(leip); + Map headers = new HashMap<>(); + headers.put("x-token", token); + String postResult = doPost(baseurl, headers, json); + JSONObject result = JSONObject.parseObject(postResult); + String code = result.getString("code"); + if (StringUtils.equals(code, "0")) { + return postResult; + } else { + String message = result.getString("message"); + ExceptionUtils.wrappBusinessException(message); + return message; + } + } + + private String getLEToken(String leip) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("username", "nc_le"); + jsonObject.put("password", "7qTx8aPxVQ3n3j3HaKxZvLepyCyNm6gk967V7qcmJZkfBbJFEQZqPdQJMgfQNWdQ"); + String result = doPost(leip + "/login", null, jsonObject); + JSONObject parsed = JSONObject.parseObject(result); + String token = parsed.getString("token"); + return token; + } + + private String doPost(String baseurl, Map map, JSONObject json) { + BufferedReader reader = null; + try { + URL url = new URL(baseurl);// + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setDoOutput(true); + connection.setDoInput(true); + connection.setUseCaches(false); + connection.setInstanceFollowRedirects(true); + connection.setRequestMethod("POST"); // ʽ + // ýݵĸʽ + connection.setRequestProperty("Content-Type", "application/json"); // ÷ݵĸʽ + if (map != null) { + for (String key : map.keySet()) { + connection.setRequestProperty(key, map.get(key)); + } + } + connection.connect(); + // һҪBufferedReader Ӧ ʹֽӦķǽղݵ + OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // UTF-8 + if (json != null) { + out.append(json.toString()); + } + out.flush(); + out.close(); + // ȡӦ + reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); + String line; + String res = ""; + while ((line = reader.readLine()) != null) { + res += line; + } + reader.close(); + return res; + } catch (Exception e) { +// e.printStackTrace(); + throw new RuntimeException(e); + } + } +} diff --git a/ic/src/public/nc/IHttpPostOtherSys.java b/ic/src/public/nc/IHttpPostOtherSys.java new file mode 100644 index 0000000..0c51069 --- /dev/null +++ b/ic/src/public/nc/IHttpPostOtherSys.java @@ -0,0 +1,15 @@ +package nc; + +import com.alibaba.fastjson.JSONObject; + + +public interface IHttpPostOtherSys { + + /** + * xuwjl@yonyou.com 2025424 15:24:14 + * @param url LEĽӿڵַip + * @param json + */ + public String callLE(String url, JSONObject json); + +}