diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/acs/controller/AcsController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/acs/controller/AcsController.java
index 6a2faf7..4c5396c 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/acs/controller/AcsController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/acs/controller/AcsController.java
@@ -1,6 +1,9 @@
 package org.jeecg.modules.wms.api.acs.controller;
 
+import java.util.Map;
+
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.wms.api.acs.entity.AcsStatus;
@@ -11,7 +14,11 @@ import org.jeecg.modules.wms.task.agvTask.service.IAgvTaskService;
 import org.jeecg.utils.StringUtils;
 import org.jeecg.utils.constant.QuantityConstant;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 import io.swagger.annotations.ApiOperation;
 
@@ -23,6 +30,17 @@ public class AcsController extends HuahengBaseController {
     private IAcsService acsService;
     @Resource
     private IAgvTaskService agvTaskService;
+    
+//    @PassApiAuthentication
+    @ApiLogger(apiName = "API接口第三方Token校验测试", from = "TEST")
+    @ResponseBody
+    @PostMapping(value = "/testTokenCheck")
+    public Result<?> testTokenCheck(@RequestBody Map<String, String> paramMap, HttpServletRequest request) {
+        
+        
+        return new Result<>();
+    }
+    
 
     @PostMapping("/notifyAGVTask")
     @ApiOperation("更新AGV状态")
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/acs/service/impl/AcsServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/acs/service/impl/AcsServiceImpl.java
index c4f5ab7..5ab2f0c 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/acs/service/impl/AcsServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/acs/service/impl/AcsServiceImpl.java
@@ -57,7 +57,7 @@ public class AcsServiceImpl implements IAcsService {
                 }
             }
         }
-        Location toLocation = locationService.getLocationByCode(toPort, warehouseCode);
+//        Location toLocation = locationService.getLocationByCode(toPort, warehouseCode);
         agvTask.setPreTaskNo(preTaskNo);
         boolean success = agvTaskService.updateById(agvTask);
         if (!success) {
@@ -75,7 +75,7 @@ public class AcsServiceImpl implements IAcsService {
         String url = addressService.getUrlByParam(QuantityConstant.ADDRESS_AGV_TASK_ASSIGN);
         String jsonParam = JSON.toJSONString(agvEntity);
         System.out.println(jsonParam);
-        String body = OkHttpUtils.bodypost(url, jsonParam);
+        String body = OkHttpUtils.sendPostByJsonStr(url, jsonParam);
         if (StringUtils.isEmpty(body)) {
             throw new ServiceException("接口地址错误或返回为空");
         }
@@ -92,7 +92,7 @@ public class AcsServiceImpl implements IAcsService {
         agvEntity.setTaskNo(agvTask.getId());
         String url = addressService.getUrlByParam(QuantityConstant.ADDRESS_AGV_TASK_CANCEL);
         String jsonParam = JSON.toJSONString(agvEntity);
-        String body = OkHttpUtils.bodypost(url, jsonParam);
+        String body = OkHttpUtils.sendPostByJsonStr(url, jsonParam);
         if (StringUtils.isEmpty(body)) {
             throw new ServiceException("接口地址错误或返回为空");
         }
@@ -110,7 +110,7 @@ public class AcsServiceImpl implements IAcsService {
         agvEntity.setPriority(agvTask.getPriority());
         String url = addressService.getUrlByParam(QuantityConstant.ADDRESS_AGV_TASK_UPDATE);
         String jsonParam = JSON.toJSONString(agvEntity);
-        String body = OkHttpUtils.bodypost(url, jsonParam);
+        String body = OkHttpUtils.sendPostByJsonStr(url, jsonParam);
         if (StringUtils.isEmpty(body)) {
             throw new ServiceException("接口地址错误或返回为空");
         }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/erp/service/impl/ErpServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/erp/service/impl/ErpServiceImpl.java
index 2eaea6b..087c8ef 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/erp/service/impl/ErpServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/erp/service/impl/ErpServiceImpl.java
@@ -427,7 +427,7 @@ public class ErpServiceImpl implements IErpService {
         erpBackReceipt.setReceiptDetailList(receiptDetailList);
         String jsonParam = JSON.toJSONString(erpBackReceipt);
         System.out.println(jsonParam);
-        String body = OkHttpUtils.bodypost(url, jsonParam);
+        String body = OkHttpUtils.sendPostByJsonStr(url, jsonParam);
         if (StringUtils.isEmpty(body)) {
             throw new ServiceException("接口地址错误或返回为空");
         }
@@ -459,7 +459,7 @@ public class ErpServiceImpl implements IErpService {
         erpBackShipment.setShipmentDetailList(shipmentDetailList);
         String jsonParam = JSON.toJSONString(erpBackShipment);
         System.out.println(jsonParam);
-        String body = OkHttpUtils.bodypost(url, jsonParam);
+        String body = OkHttpUtils.sendPostByJsonStr(url, jsonParam);
         if (StringUtils.isEmpty(body)) {
             throw new ServiceException("接口地址错误或返回为空");
         }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/servuce/impl/MesServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/servuce/impl/MesServiceImpl.java
index f85b42b..ca70e23 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/servuce/impl/MesServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/servuce/impl/MesServiceImpl.java
@@ -258,7 +258,7 @@ public class MesServiceImpl implements IMesService {
         String url = addressService.getUrlByParam(QuantityConstant.ADDRESS_MES_BACK_RECEIPT);
         String jsonParam = JSON.toJSONString(mesBackReceiptList);
         System.out.println(jsonParam);
-        String body = OkHttpUtils.bodypost(url, jsonParam);
+        String body = OkHttpUtils.sendPostByJsonStr(url, jsonParam);
         if (StringUtils.isEmpty(body)) {
             throw new ServiceException("接口地址错误或返回为空");
         }
@@ -327,7 +327,7 @@ public class MesServiceImpl implements IMesService {
         String url = addressService.getUrlByParam(QuantityConstant.ADDRESS_MES_BACK_SHIPMENT);
         String jsonParam = JSON.toJSONString(mesBackShipmentList);
         System.out.println(jsonParam);
-        String body = OkHttpUtils.bodypost(url, jsonParam);
+        String body = OkHttpUtils.sendPostByJsonStr(url, jsonParam);
         if (StringUtils.isEmpty(body)) {
             throw new ServiceException("接口地址错误或返回为空");
         }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java
index 1ece0dc..dba4ffc 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java
@@ -256,7 +256,7 @@ public class WcsServiceImpl implements WcsService {
         String fromLocationCode = taskHeader.getFromLocationCode();
         String toLocationCode = taskHeader.getToLocationCode();
         Location fromLocation = locationService.getLocationByCode(fromLocationCode, warehouseCode);
-        Location toLocation = locationService.getLocationByCode(toLocationCode, warehouseCode);
+//        Location toLocation = locationService.getLocationByCode(toLocationCode, warehouseCode);
         boolean direction = true; // true 执行时是入库动作, false 执行时是出库动作
         switch (taskType) {
             case QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT:
@@ -378,7 +378,7 @@ public class WcsServiceImpl implements WcsService {
             wcsTask = switchTaskTypeToWcs(wcsTask);
             String jsonParam = JSON.toJSONString(wcsTask);
             System.out.println(jsonParam);
-            String body = OkHttpUtils.bodypost(url, jsonParam);
+            String body = OkHttpUtils.sendPostByJsonStr(url, jsonParam);
             if (StringUtils.isEmpty(body)) {
                 throw new ServiceException("接口地址错误或返回为空");
             }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/aspectj/ApiAuthenticationAspect.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/aspectj/ApiAuthenticationAspect.java
new file mode 100644
index 0000000..933f760
--- /dev/null
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/aspectj/ApiAuthenticationAspect.java
@@ -0,0 +1,92 @@
+package org.jeecg.modules.wms.framework.aspectj;
+
+import java.lang.reflect.Method;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 第三方系统调用接口身份认证Aspect
+ * @author     TanYibin
+ * @createDate 2023年2月14日
+ */
+@Slf4j
+@Aspect
+@Component
+@EnableAsync
+public class ApiAuthenticationAspect {
+
+    @Pointcut("execution(* org.jeecg.modules.wms.api..*.*(..)) " 
+        + "&& (@annotation(org.springframework.web.bind.annotation.RequestMapping) "
+        + "|| @annotation(org.springframework.web.bind.annotation.GetMapping) "
+        + "|| @annotation(org.springframework.web.bind.annotation.PostMapping))")
+    public void executeController() {}
+
+    /**
+     * API Token 验证
+     * @author                           TanYibin
+     * @createDate                       2023年2月14日
+     * @param      joinPoint
+     * @throws     NoSuchMethodException
+     * @throws     Throwable
+     */
+    @Before("executeController()")
+    public void doBefore(JoinPoint joinPoint) throws NoSuchMethodException, Throwable {
+        Method method = this.getTargetMethod(joinPoint);
+        // 检查是否有passtoken注释,有则跳过认证
+        if (method.isAnnotationPresent(PassApiAuthentication.class)) {
+            PassApiAuthentication passApiAuthentication = method.getAnnotation(PassApiAuthentication.class);
+            if (passApiAuthentication.required()) {
+                return;
+            }
+        }
+        // 获取request对象
+        ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
+        HttpServletRequest request = attributes.getRequest();
+        String token = request.getHeader("token");
+        log.info("开始校验Token:{}", token);
+    }
+
+    /**
+     * 基于连接点信息获取目标方法对象
+     * @author                           TanYibin
+     * @createDate                       2023年2月14日
+     * @param      joinPoint
+     * @return
+     * @throws     NoSuchMethodException
+     */
+    private Method getTargetMethod(JoinPoint joinPoint) throws NoSuchMethodException {
+        // 获取目标类对象
+        Class<?> clazz = joinPoint.getTarget().getClass();
+        // 获取方法签名信息,方法名和参数列表
+        MethodSignature signature = (MethodSignature)joinPoint.getSignature();
+        // 获取目标方法对象
+        return clazz.getDeclaredMethod(signature.getName(), signature.getParameterTypes());
+    }
+
+    /**
+     * 获取方法类全名+方法名
+     * @author            TanYibin
+     * @createDate        2023年2月14日
+     * @param      method
+     * @return
+     */
+    private String getClassAndMethodName(Method method) {
+        // 获取类全名
+        String className = method.getDeclaringClass().getName();
+        // 获取方法名
+        String methodName = method.getName();
+        return new StringBuffer(className).append(".").append(methodName).toString();
+    }
+}
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/aspectj/ApiLogAspect.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/aspectj/ApiLogAspect.java
index 716051e..e34bdd5 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/aspectj/ApiLogAspect.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/aspectj/ApiLogAspect.java
@@ -1,9 +1,19 @@
 package org.jeecg.modules.wms.framework.aspectj;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import okhttp3.Request;
-import okhttp3.Response;
+import java.net.InetAddress;
+import java.net.URL;
+import java.net.UnknownHostException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
@@ -24,21 +34,18 @@ import org.jeecg.utils.constant.QuantityConstant;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpHeaders;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.stereotype.Component;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.*;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+
+import okhttp3.Request;
+import okhttp3.Response;
 
 /**
- * Api调用日志记录处理
+ * API调用日志记录处理
  * @author huaheng
  */
 @Aspect
@@ -65,181 +72,173 @@ public class ApiLogAspect {
     @Pointcut("@annotation(org.jeecg.modules.wms.framework.aspectj.lang.annotation.ApiLogger)")
     public void logPointCut() {}
 
-    @Around("logPointCut()  && @annotation(apiLogger)")
+    @Around("logPointCut() && @annotation(apiLogger)")
     public Object around(ProceedingJoinPoint point, ApiLogger apiLogger) throws Throwable {
-        // 实际上静态方法上的Aop注解无法拦截到
-        if ("WMS".equalsIgnoreCase(apiLogger.from())) {
-            return aroundWms2XXX(point, apiLogger);
-        } else {
-            return aroundXXX2Wms(point, apiLogger);
-        }
+        return aroundXXX2Wms(point, apiLogger);
     }
 
-    /** 处理xxx调用wms接口的日志 **/
+    /** 记录第三方系统调用WMS接口的日志 **/
     private Object aroundXXX2Wms(ProceedingJoinPoint point, ApiLogger apiLogger) {
         Object ret = null;
-        ApiLog log = initApiLog(apiLogger, point);
+        ApiLog apiLog = initApiLog(apiLogger, point);
         try {
             ret = point.proceed();
         } catch (Throwable e) {
-            setApiLogThrowable(log, e);
+            setApiLogThrowable(apiLog, e);
             ret = Result.error(e.getMessage());
             return ret;
         } finally {
             if (ret != null) {
-                finishApiLog(log, ret);
+                finishApiLog(apiLog, ret);
             }
         }
         return ret;
     }
 
-    /** 处理WMS调用xxx接口的日志 **/
-    private Object aroundWms2XXX(ProceedingJoinPoint point, ApiLogger apiLogger) {
-        Object ret = null;
-        ApiLog log = new ApiLog();
-
-        HttpURLConnection connection = null;
-        String body = null;
-
-        try {
-//            HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
-            connection = (HttpURLConnection)point.getArgs()[0];
-            body = (String)point.getArgs()[1];
-            initApiLog(connection, body);
-            ret = point.proceed();
-        } catch (Throwable e) {
-            setApiLogThrowable(log, e);
-            ret = Result.error(e.getMessage());
-        } finally {
-            if (ret != null) {
-                finishApiLog(log, connection, ret.toString());
-            }
-        }
-        return ret;
-    }
+//    /** 记录WMS调用第三方接口的日志 **/
+//    private Object aroundWms2XXX(ProceedingJoinPoint point, ApiLogger apiLogger) {
+//        Object ret = null;
+//        ApiLog log = new ApiLog();
+//
+//        HttpURLConnection connection = null;
+//        String body = null;
+//
+//        try {
+//            connection = (HttpURLConnection)point.getArgs()[0];
+//            body = (String)point.getArgs()[1];
+//            initApiLog(connection, body);
+//            ret = point.proceed();
+//        } catch (Throwable e) {
+//            setApiLogThrowable(log, e);
+//            ret = Result.error(e.getMessage());
+//        } finally {
+//            if (ret != null) {
+//                finishApiLog(log, connection, ret.toString());
+//            }
+//        }
+//        return ret;
+//    }
+
+//    /**
+//     * 记录响应头信息,保存日志到数据库
+//     */
+//    public static void finishApiLog(ApiLog log, HttpURLConnection connection, String body) {
+//        try {
+//            log.setResponseBody(body);
+//            log.setResponseTime(new Date());
+//            Long duration = log.getResponseTime().getTime() - log.getRequestTime().getTime();
+//            log.setDuration(duration.intValue());
+//            log.setHttpCode(connection.getResponseCode());
+//
+//            // 响应头
+//            Set<String> keyset = connection.getHeaderFields().keySet();
+//            ArrayList<String> headerList = new ArrayList<>();
+//            Iterator<String> it = keyset.iterator();
+//            while (it.hasNext()) {
+//                String name = it.next();
+//                String header = connection.getHeaderField(name);
+//                if (name == null || "".equals(name)) {
+//                    // 第一行没有name
+//                    // HTTP/1.1 200 OK
+//                    headerList.add(header);
+//                } else {
+//                    headerList.add(name + ": " + header);
+//                }
+//            }
+//            log.setResponseHeader(org.apache.commons.lang3.StringUtils.join(headerList, "\n"));
+//            Result json = JSON.parseObject(body, Result.class);
+//            log.setRetCode(json.getCode());
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        } finally {
+//            SpringUtils.getBean(ApiLogAspect.class).saveApiLog(log);
+//        }
+//    }
+
+//    /**
+//     * 根据url,从address表中判断调用的去向
+//     */
+//    public static void parseUrl(ApiLog log, URL url, String warehouseCode) {
+//        try {
+//            String[] spList = url.toString().split("/");
+//            String apiName = spList[spList.length - 1];
+//            String ip = JeecgSystemApplication.getLocalHostExactAddress().getHostAddress();
+//            Address address = addressService.getAddressByUrl(url.toString(), warehouseCode);
+//            log.setApiName(apiName);
+//            log.setRequestFrom("WMS");
+//            log.setIp(ip);
+//            log.setResponseBy(address.getParam().toUpperCase());
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//    }
+
+//    /**
+//     * 记录WMS调用第三方系统接口的请求信息 
+//     * 在HttpUtils.body POST方法中直接调用本类static方法
+//     **/
+//    public static ApiLog initApiLog(String Method, String urlStr, String body, HttpHeaders headers, String warehouseCode) {
+//        ApiLog log = new ApiLog();
+//        try {
+//            URL url = new URL(urlStr);
+//            log.setApiMethod(Method);
+//            log.setUrl(urlStr);
+//            log.setRequestTime(new Date());
+//            parseUrl(log, url, warehouseCode);
+//
+//            // 请求头
+//            Set<String> keySet = headers.keySet();
+//            ArrayList<String> headerList = new ArrayList<>();
+//            Iterator<String> it = keySet.iterator();
+//            while (it.hasNext()) {
+//                String name = it.next();
+//                String header = String.valueOf(headers.getContentType());
+//                headerList.add(name + ": " + header);
+//            }
+//
+//            log.setRequestHeader(org.apache.commons.lang3.StringUtils.join(headerList, "\n"));
+//            log.setRequestBody(body);
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//
+//        return log;
+//    }
+
+//    /**
+//     * 记录WMS调用第三方系统接口的请求信息
+//     * 在HttpUtils.body POST方法中直接调用本类static方法
+//     **/
+//    public static ApiLog initApiLog(HttpURLConnection connection, String body) {
+//        ApiLog log = new ApiLog();
+//        try {
+//            log.setApiMethod(connection.getRequestMethod());
+//            log.setUrl(connection.getURL().toString());
+//            log.setRequestTime(new Date());
+//            parseUrl(log, connection.getURL());
+//
+//            // 请求头
+//            Set<String> keySet = connection.getRequestProperties().keySet();
+//            ArrayList<String> headerList = new ArrayList<>();
+//            Iterator<String> it = keySet.iterator();
+//            while (it.hasNext()) {
+//                String name = it.next();
+//                String header = connection.getRequestProperty(name);
+//                headerList.add(name + ":" + header);
+//            }
+//
+//            log.setRequestHeader(org.apache.commons.lang3.StringUtils.join(headerList, "\n"));
+//            log.setRequestBody(body);
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//
+//        return log;
+//    }
 
     /**
-     * 记录响应头信息
-     **/
-    public static void finishApiLog(ApiLog log, HttpURLConnection connection, String body) {
-        try {
-            log.setResponseBody(body);
-            log.setResponseTime(new Date());
-            Long duration = log.getResponseTime().getTime() - log.getRequestTime().getTime();
-            log.setDuration(duration.intValue());
-            log.setHttpCode(connection.getResponseCode());
-
-            // 响应头
-            Set<String> keyset = connection.getHeaderFields().keySet();
-            ArrayList<String> headerList = new ArrayList<>();
-            Iterator<String> it = keyset.iterator();
-            while (it.hasNext()) {
-                String name = it.next();
-                String header = connection.getHeaderField(name);
-                if (name == null || "".equals(name)) {
-                    // 第一行没有name
-                    // HTTP/1.1 200 OK
-                    headerList.add(header);
-                } else {
-                    headerList.add(name + ": " + header);
-                }
-            }
-            log.setResponseHeader(org.apache.commons.lang3.StringUtils.join(headerList, "\n"));
-            Result json = JSON.parseObject(body, Result.class);
-            log.setRetCode(json.getCode());
-        } catch (Exception e) {
-            e.printStackTrace();
-        } finally {
-            SpringUtils.getBean(ApiLogAspect.class).saveApiLog(log);
-        }
-    }
-
-    /**
-     * 根据url,从address表中判断调用的去向
-     */
-    public static void parseUrl(ApiLog log, URL url, String warehouseCode) {
-        try {
-            String[] spList = url.toString().split("/");
-            String apiName = spList[spList.length - 1];
-//            int index = url.toString().lastIndexOf(apiName);
-//            String addUrl = url.toString().substring(0, index);
-            String ip = JeecgSystemApplication.getLocalHostExactAddress().getHostAddress();
-            Address address = addressService.getAddressByUrl(url.toString(), warehouseCode);
-            log.setApiName(apiName);
-            log.setRequestFrom("WMS");
-            log.setIp(ip);
-            log.setResponseBy(address.getParam().toUpperCase());
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     * 记录WMS调用外接口的请求信息
-     * 在HttpUtils.body POST方法中直接调用本类static方法
-     **/
-    public static ApiLog initApiLog(String Method, String urlStr, String body, HttpHeaders headers, String warehouseCode) {
-        ApiLog log = new ApiLog();
-        try {
-            URL url = new URL(urlStr);
-            log.setApiMethod(Method);
-            log.setUrl(urlStr);
-            log.setRequestTime(new Date());
-            parseUrl(log, url, warehouseCode);
-
-            // 请求头
-            Set<String> keySet = headers.keySet();
-            ArrayList<String> headerList = new ArrayList<>();
-            Iterator<String> it = keySet.iterator();
-            while (it.hasNext()) {
-                String name = it.next();
-                String header = String.valueOf(headers.getContentType());
-                headerList.add(name + ": " + header);
-            }
-
-            log.setRequestHeader(org.apache.commons.lang3.StringUtils.join(headerList, "\n"));
-            log.setRequestBody(body);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-        return log;
-    }
-
-    /**
-     * 记录WMS调用外接口的请求信息
-     * 在HttpUtils.body POST方法中直接调用本类static方法
-     **/
-    public static ApiLog initApiLog(HttpURLConnection connection, String body) {
-        ApiLog log = new ApiLog();
-        try {
-            log.setApiMethod(connection.getRequestMethod());
-            log.setUrl(connection.getURL().toString());
-            log.setRequestTime(new Date());
-            parseUrl(log, connection.getURL());
-
-            // 请求头
-            Set<String> keySet = connection.getRequestProperties().keySet();
-            ArrayList<String> headerList = new ArrayList<>();
-            Iterator<String> it = keySet.iterator();
-            while (it.hasNext()) {
-                String name = it.next();
-                String header = connection.getRequestProperty(name);
-                headerList.add(name + ":" + header);
-            }
-
-            log.setRequestHeader(org.apache.commons.lang3.StringUtils.join(headerList, "\n"));
-            log.setRequestBody(body);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-        return log;
-    }
-
-    /**
-     * 记录WMS调用外接口的请求信息
-     * 在HttpUtils.bodypost方法中直接调用本类static方法
+     * 记录WMS调用第三方系统接口的请求信息
+     * 在OKHttpUtils.bodypost方法中直接调用本类static方法
      **/
     public static ApiLog initApiLog(Request request, String body) {
         ApiLog log = new ApiLog();
@@ -294,8 +293,6 @@ public class ApiLogAspect {
         try {
             String[] spList = url.toString().split("/");
             String apiName = spList[spList.length - 1];
-//            int index = url.toString().lastIndexOf(apiName);
-//            String addUrl = url.toString().substring(0, index);
             String ip = JeecgSystemApplication.getLocalHostExactAddress().getHostAddress();
             Address address = addressService.getAddressByUrl(url.toString(), QuantityConstant.DEFAULT_WAREHOUSE);
             log.setApiName(apiName);
@@ -307,40 +304,40 @@ public class ApiLogAspect {
         }
     }
 
-    /**
-     * 记录响应头信息
-     **/
-    public static void finishApiLog(ApiLog log, HttpHeaders headers, String body) {
-        try {
-            log.setResponseBody(body);
-            log.setResponseTime(new Date());
-            Long duration = log.getResponseTime().getTime() - log.getRequestTime().getTime();
-            log.setDuration(duration.intValue());
-            log.setHttpCode(200);
-
-            // 响应头
-            Set<String> keyset = headers.keySet();
-            ArrayList<String> headerList = new ArrayList<>();
-            Iterator<String> it = keyset.iterator();
-            while (it.hasNext()) {
-                String name = it.next();
-                String header = String.valueOf(headers.getContentType());
-                if (name == null || "".equals(name))
-                    // 第一行没有name
-                    // HTTP/1.1 200 OK
-                    headerList.add(header);
-                else
-                    headerList.add(name + ": " + header);
-            }
-            log.setResponseHeader(org.apache.commons.lang3.StringUtils.join(headerList, "\n"));
-            Result json = JSON.parseObject(body, Result.class);
-            log.setRetCode(json.getCode());
-        } catch (Exception e) {
-            e.printStackTrace();
-        } finally {
-            SpringUtils.getBean(ApiLogAspect.class).saveApiLog(log);
-        }
-    }
+//    /**
+//     * 记录响应头信息
+//     **/
+//    public static void finishApiLog(ApiLog log, HttpHeaders headers, String body) {
+//        try {
+//            log.setResponseBody(body);
+//            log.setResponseTime(new Date());
+//            Long duration = log.getResponseTime().getTime() - log.getRequestTime().getTime();
+//            log.setDuration(duration.intValue());
+//            log.setHttpCode(200);
+//
+//            // 响应头
+//            Set<String> keyset = headers.keySet();
+//            ArrayList<String> headerList = new ArrayList<>();
+//            Iterator<String> it = keyset.iterator();
+//            while (it.hasNext()) {
+//                String name = it.next();
+//                String header = String.valueOf(headers.getContentType());
+//                if (name == null || "".equals(name))
+//                    // 第一行没有name
+//                    // HTTP/1.1 200 OK
+//                    headerList.add(header);
+//                else
+//                    headerList.add(name + ": " + header);
+//            }
+//            log.setResponseHeader(org.apache.commons.lang3.StringUtils.join(headerList, "\n"));
+//            Result json = JSON.parseObject(body, Result.class);
+//            log.setRetCode(json.getCode());
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        } finally {
+//            SpringUtils.getBean(ApiLogAspect.class).saveApiLog(log);
+//        }
+//    }
 
     private ApiLog initApiLog(ApiLogger apiLogger, ProceedingJoinPoint point) {
         ApiLog log = new ApiLog();
@@ -351,19 +348,16 @@ public class ApiLogAspect {
             log.setApiName(apiLogger.apiName());
 
             HttpServletRequest request = ServletUtils.getRequest();
-
             String qryStr = request.getQueryString();
             String url = request.getRequestURL().toString();
             if (StringUtils.isNotEmpty(qryStr)) {
                 url = url + "?" + qryStr;
             }
             log.setUrl(url);
-
             log.setApiMethod(request.getMethod());
-            log.setIp(request.getRemoteAddr());
+            log.setIp(this.getIpAddr(request));
 
             rebuildRequestHeader(log);
-
             rebuildRequestBody(log, request);
 
             // 如果reqeust中取不到post参数,就从接口方法参数中取json对象
@@ -410,7 +404,7 @@ public class ApiLogAspect {
             ex.printStackTrace();
         }
     }
-    
+
     public static void setApiLogThrowable(ApiLog log, Throwable e) {
         try {
             String exception = ExceptionUtils.getFullStackTrace(e);
@@ -429,7 +423,7 @@ public class ApiLogAspect {
             while (names.hasMoreElements()) {
                 String name = (String)names.nextElement();
                 String header = req.getHeader(name);
-                headerList.add(name + ": " + header);
+                headerList.add(name + ":" + header);
             }
             String headers = org.apache.commons.lang3.StringUtils.join(headerList, "\n");
             log.setRequestHeader(headers);
@@ -527,4 +521,35 @@ public class ApiLogAspect {
             e.printStackTrace();
         }
     }
+
+    public String getIpAddr(HttpServletRequest request) {
+        String ipAddress = request.getHeader("x-forwarded-for");
+        if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+            ipAddress = request.getHeader("Proxy-Client-IP");
+        }
+        if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+            ipAddress = request.getHeader("WL-Proxy-Client-IP");
+        }
+        if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+            ipAddress = request.getRemoteAddr();
+            if (ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")) {
+                // 根据网卡取本机配置的IP
+                InetAddress inet = null;
+                try {
+                    inet = InetAddress.getLocalHost();
+                } catch (UnknownHostException e) {
+                    e.printStackTrace();
+                }
+                ipAddress = inet.getHostAddress();
+            }
+        }
+        // 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
+        // "***.***.***.***".length() = 15
+        if (ipAddress != null && ipAddress.length() > 15) {
+            if (ipAddress.indexOf(",") > 0) {
+                ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));
+            }
+        }
+        return ipAddress;
+    }
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/aspectj/PassApiAuthentication.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/aspectj/PassApiAuthentication.java
new file mode 100644
index 0000000..604da8a
--- /dev/null
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/aspectj/PassApiAuthentication.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.wms.framework.aspectj;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 跳过API身份验证注解
+ * @author     TanYibin
+ * @createDate 2023年2月13日
+ */
+@Target({ElementType.METHOD, ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface PassApiAuthentication {
+    boolean required() default true;
+}
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/controller/TestController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/controller/TestController.java
index 233be7d..945c84e 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/controller/TestController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/controller/TestController.java
@@ -43,14 +43,14 @@ public class TestController extends HuahengBaseController {
     private ISysDataLogService sysDataLogService;
     
     
-    @ApiLogger(apiName = "API接口第三方Token校验测试", from = "TEST")
-    @ResponseBody
-    @PostMapping(value = "/api/wms/testTokenCheck")
-    public Result<?> testTokenCheck(@RequestBody Map<String, String> paramMap, HttpServletRequest request) {
-        
-        
-        return new Result<>();
-    }
+//    @ApiLogger(apiName = "API接口第三方Token校验测试", from = "TEST")
+//    @ResponseBody
+//    @PostMapping(value = "/api/wms/testTokenCheck")
+//    public Result<?> testTokenCheck(@RequestBody Map<String, String> paramMap, HttpServletRequest request) {
+//        
+//        
+//        return new Result<>();
+//    }
     
 
     @AutoLog(value = "TestController-testRedis")
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/utils/http/HttpUtils.java b/huaheng-wms-core/src/main/java/org/jeecg/utils/http/HttpUtils.java
deleted file mode 100644
index 27ff6dc..0000000
--- a/huaheng-wms-core/src/main/java/org/jeecg/utils/http/HttpUtils.java
+++ /dev/null
@@ -1,346 +0,0 @@
-package org.jeecg.utils.http;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.jeecg.modules.wms.framework.aspectj.ApiLogAspect;
-import org.jeecg.modules.wms.monitor.apiLog.entity.ApiLog;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.net.ssl.*;
-import java.io.*;
-import java.net.*;
-import java.security.cert.X509Certificate;
-
-/**
- * 通用http发送方法
- * @author huaheng
- */
-public class HttpUtils {
-
-    private static final Logger log = LoggerFactory.getLogger(HttpUtils.class);
-
-    /**
-     * 向指定 URL 发送GET方法的请求
-     * @param  url   发送请求的 URL
-     * @param  param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
-     * @return       所代表远程资源的响应结果
-     */
-    public static String sendGet(String url, String param) {
-        StringBuilder result = new StringBuilder();
-        BufferedReader in = null;
-        try {
-            String urlNameString = url + "?" + param;
-            log.info("sendGet - {}", urlNameString);
-            URL realUrl = new URL(urlNameString);
-            URLConnection connection = realUrl.openConnection();
-            connection.setRequestProperty("accept", "*/*");
-            connection.setRequestProperty("connection", "Keep-Alive");
-            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
-            connection.connect();
-            in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
-            String line;
-            while ((line = in.readLine()) != null) {
-                result.append(line);
-            }
-            log.info("recv - {}", result);
-        } catch (ConnectException e) {
-            log.error("调用HttpUtils.sendGet ConnectException, url=" + url + ",param=" + param, e.getMessage());
-        } catch (SocketTimeoutException e) {
-            log.error("调用HttpUtils.sendGet SocketTimeoutException, url=" + url + ",param=" + param, e.getMessage());
-        } catch (IOException e) {
-            log.error("调用HttpUtils.sendGet IOException, url=" + url + ",param=" + param, e.getMessage());
-        } catch (Exception e) {
-            log.error("调用HttpsUtil.sendGet Exception, url=" + url + ",param=" + param, e.getMessage());
-        } finally {
-            try {
-                if (in != null) {
-                    in.close();
-                }
-            } catch (Exception ex) {
-                log.error("调用in.close Exception, url=" + url + ",param=" + param, ex.getMessage());
-            }
-        }
-        return result.toString();
-    }
-
-    // post请求 为erp回传定制
-    public static String erppost(String strURL, String params, String key) {
-        HttpURLConnection connection = null;
-        InputStream is = null;
-        OutputStreamWriter out = null;
-        String result = null;
-        ApiLog log = null;
-
-        try {
-            URL url = new URL(strURL);// 创建连接
-//            String ur = "" + url;
-            connection = (HttpURLConnection)url.openConnection();
-            connection.setDoOutput(true);
-            connection.setDoInput(true);
-            connection.setUseCaches(false);
-            connection.setInstanceFollowRedirects(true);
-            connection.setRequestMethod("POST");// 设置请求方式
-            connection.setRequestProperty("Accept", "application/json");// 设置接收数据的格式
-            connection.setRequestProperty("Content-Type", "application/json");// 设置发送数据的格式
-            connection.setRequestProperty("apiKey", key);// 测试环境key
-            log = ApiLogAspect.initApiLog(connection, params);
-            connection.connect();
-            out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");// utf-8编码
-            out.append(params);
-            out.flush();
-            out.close(); // 读取响应
-            int length = (int)connection.getContentLength();// 获取长度
-            is = connection.getInputStream();
-//            BufferedReader br = new BufferedReader(new InputStreamReader(is));
-            length = 10000;
-            if (length > 0) {
-                byte[] data = new byte[length];
-                byte[] temp = new byte[512];
-                int readLen = 0;
-                int destPos = 0;
-                while ((readLen = is.read(temp)) > 0) {
-                    System.arraycopy(temp, 0, data, destPos, readLen);
-                    destPos += readLen;
-                }
-                result = new String(data, "UTF-8");
-                System.out.println(result);
-            }
-        } catch (Exception e) {
-            ApiLogAspect.setApiLogException(log, e);
-            e.printStackTrace();
-        } finally {
-            ApiLogAspect.finishApiLog(log, connection, result);
-            if (connection != null)
-                connection.disconnect();
-            IOUtils.closeQuietly(out, is);
-        }
-        return result;
-    }
-
-    /**
-     * 向指定 URL 发送POST方法的请求
-     * @param  url   发送请求的 URL
-     * @param  param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
-     * @return       所代表远程资源的响应结果
-     */
-    public static String sendPost(String url, String param) {
-        PrintWriter out = null;
-        BufferedReader in = null;
-        StringBuilder result = new StringBuilder();
-        try {
-            String urlNameString = url + "?" + param;
-            log.info("sendPost - {}", urlNameString);
-            URL realUrl = new URL(urlNameString);
-            URLConnection conn = realUrl.openConnection();
-            conn.setRequestProperty("accept", "*/*");
-            conn.setRequestProperty("connection", "Keep-Alive");
-            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
-            conn.setRequestProperty("Accept-Charset", "utf-8");
-            conn.setRequestProperty("contentType", "utf-8");
-            conn.setDoOutput(true);
-            conn.setDoInput(true);
-            out = new PrintWriter(conn.getOutputStream());
-            out.print(param);
-            out.flush();
-            if (((HttpURLConnection)conn).getResponseCode() >= 390) {
-                in = new BufferedReader(new InputStreamReader(((HttpURLConnection)conn).getErrorStream()));
-            } else {
-                in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
-            }
-//            in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
-            String line;
-            while ((line = in.readLine()) != null) {
-                result.append(line);
-            }
-            log.info("recv - {}", result);
-        } catch (ConnectException e) {
-            log.error("调用HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e.getMessage());
-        } catch (SocketTimeoutException e) {
-            log.error("调用HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e.getMessage());
-        } catch (IOException e) {
-            log.error("调用HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e.getMessage());
-        } catch (Exception e) {
-            log.error("调用HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e.getMessage());
-        } finally {
-            try {
-                if (out != null) {
-                    out.close();
-                }
-                if (in != null) {
-                    in.close();
-                }
-            } catch (IOException ex) {
-                log.error("调用in.close Exception, url=" + url + ",param=" + param, ex.getMessage());
-            }
-        }
-        return result.toString();
-    }
-
-    public static String sendSSLPost(String url, String param) {
-        StringBuilder result = new StringBuilder();
-        String urlNameString = url + "?" + param;
-        try {
-            log.info("sendSSLPost - {}", urlNameString);
-            SSLContext sc = SSLContext.getInstance("SSL");
-            sc.init(null, new TrustManager[] {new TrustAnyTrustManager()}, new java.security.SecureRandom());
-            URL console = new URL(urlNameString);
-            HttpsURLConnection conn = (HttpsURLConnection)console.openConnection();
-            conn.setRequestProperty("accept", "*/*");
-            conn.setRequestProperty("connection", "Keep-Alive");
-            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
-            conn.setRequestProperty("Accept-Charset", "utf-8");
-            conn.setRequestProperty("contentType", "utf-8");
-            conn.setDoOutput(true);
-            conn.setDoInput(true);
-
-            conn.setSSLSocketFactory(sc.getSocketFactory());
-            conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
-            conn.connect();
-            InputStream is = conn.getInputStream();
-            BufferedReader br = new BufferedReader(new InputStreamReader(is));
-            String ret = "";
-            while ((ret = br.readLine()) != null) {
-                if (ret != null && !"".equals(ret.trim())) {
-                    result.append(new String(ret.getBytes("ISO-8859-1"), "utf-8"));
-                }
-            }
-            log.info("recv - {}", result);
-            conn.disconnect();
-            br.close();
-        } catch (ConnectException e) {
-            log.error("调用HttpUtils.sendSSLPost ConnectException, url=" + url + ",param=" + param, e.getMessage());
-        } catch (SocketTimeoutException e) {
-            log.error("调用HttpUtils.sendSSLPost SocketTimeoutException, url=" + url + ",param=" + param, e.getMessage());
-        } catch (IOException e) {
-            log.error("调用HttpUtils.sendSSLPost IOException, url=" + url + ",param=" + param, e.getMessage());
-        } catch (Exception e) {
-            log.error("调用HttpsUtil.sendSSLPost Exception, url=" + url + ",param=" + param, e.getMessage());
-        }
-        return result.toString();
-    }
-
-    // 此方法是将参数以body形式发送post请求
-    public static String bodypost(String strURL, String params) {
-        System.out.println(strURL);
-        System.out.println(params);
-        HttpURLConnection connection = null;
-        InputStream is = null;
-        OutputStreamWriter out = null;
-        String result = null;
-        ApiLog log = null;
-
-        try {
-            URL url = new URL(strURL);// 创建连接
-            String stringUrl = "" + url;
-            connection = (HttpURLConnection)url.openConnection();
-            connection.setDoOutput(true);
-            connection.setDoInput(true);
-            connection.setUseCaches(false);
-            connection.setInstanceFollowRedirects(true);
-            connection.setRequestMethod("POST");// 设置请求方式
-            connection.setRequestProperty("Accept", "application/json");// 设置接收数据的格式
-            connection.setRequestProperty("Content-Type", "application/json");// 设置发送数据的格式
-            if ((stringUrl.contains("10.0.15.19"))) {
-                connection.setRequestProperty("apiKey", "c687ef505557428595e6a596fba5de6c");// 测试环境key
-            }
-            log = ApiLogAspect.initApiLog(connection, params);
-            connection.connect();
-            out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");// utf-8编码
-            out.append(params);
-            out.flush();
-            out.close(); // 读取响应
-            int length = (int)connection.getContentLength();// 获取长度
-            is = connection.getInputStream();
-//            BufferedReader br = new BufferedReader(new InputStreamReader(is));
-            length = 10000;
-            if (length > 0) {
-                byte[] data = new byte[length];
-                byte[] temp = new byte[512];
-                int readLen = 0;
-                int destPos = 0;
-                while ((readLen = is.read(temp)) > 0) {
-                    System.arraycopy(temp, 0, data, destPos, readLen);
-                    destPos += readLen;
-                }
-                result = new String(data, "UTF-8");
-                System.out.println(result);
-            }
-        } catch (Exception e) {
-            ApiLogAspect.setApiLogException(log, e);
-            e.printStackTrace();
-        } finally {
-            ApiLogAspect.finishApiLog(log, connection, result);
-            if (connection != null)
-                connection.disconnect();
-            IOUtils.closeQuietly(out, is);
-        }
-        return result;
-    }
-
-    /**
-     * 发送以json为参数的POST请求
-     * @param  json
-     * @param  url
-     * @return
-     */
-    public static String sendJsonPostToken(String json, String url) {
-        String result = "";
-        HttpPost post = new HttpPost(url);
-        try {
-            CloseableHttpClient httpClient = HttpClients.createDefault();
-
-            post.setHeader("Content-Type", "application/json;charset=utf-8");
-            post.addHeader("Authorization", "Basic YWRtaW46");
-            StringEntity postingString = new StringEntity(json, "utf-8");
-            post.setEntity(postingString);
-            HttpResponse response = httpClient.execute(post);
-
-            InputStream in = response.getEntity().getContent();
-            BufferedReader br = new BufferedReader(new InputStreamReader(in, "utf-8"));
-            StringBuilder strber = new StringBuilder();
-            String line = null;
-            while ((line = br.readLine()) != null) {
-                strber.append(line + '\n');
-            }
-            br.close();
-            in.close();
-            result = strber.toString();
-            if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
-                result = "服务器异常";
-            }
-        } catch (Exception e) {
-            System.out.println("请求异常");
-            throw new RuntimeException(e);
-        } finally {
-            post.abort();
-        }
-        return result;
-    }
-
-    private static class TrustAnyTrustManager implements X509TrustManager {
-        @Override
-        public void checkClientTrusted(X509Certificate[] chain, String authType) {}
-
-        @Override
-        public void checkServerTrusted(X509Certificate[] chain, String authType) {}
-
-        @Override
-        public X509Certificate[] getAcceptedIssuers() {
-            return new X509Certificate[] {};
-        }
-    }
-
-    private static class TrustAnyHostnameVerifier implements HostnameVerifier {
-        @Override
-        public boolean verify(String hostname, SSLSession session) {
-            return true;
-        }
-    }
-
-}
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/utils/http/OkHttpUtils.java b/huaheng-wms-core/src/main/java/org/jeecg/utils/http/OkHttpUtils.java
index 3cb4a2a..aa05386 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/utils/http/OkHttpUtils.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/utils/http/OkHttpUtils.java
@@ -3,6 +3,8 @@ package org.jeecg.utils.http;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.TypeReference;
 import com.alibaba.fastjson.parser.Feature;
+
+import net.bytebuddy.asm.Advice.This;
 import okhttp3.*;
 import org.jeecg.modules.wms.framework.aspectj.ApiLogAspect;
 import org.jeecg.modules.wms.monitor.apiLog.entity.ApiLog;
@@ -76,54 +78,68 @@ public class OkHttpUtils {
      * @return     所代表远程资源的响应结果
      */
     public static String sendGet(String url, String param) {
+        ApiLog apiLog = null;
         // headers 请求头
         Map<String, String> headers = new HashMap<>();
         // 请求URI
         String urlNameString = url + "?" + param;
-
         Request.Builder builder = new Request.Builder();
         buildHeader(builder, headers);
 
         Request request = builder.url(urlNameString).get().build();
         Response response = null;
+        String result = null;
         try {
+            apiLog = ApiLogAspect.initApiLog(request, param);
             response = HTTP_CLIENT.newCall(request).execute();
             if (response.isSuccessful() && Objects.nonNull(response.body())) {
-                String result = response.body().string();
-                log.info("执行GET请求,url:{},header:{},param:{} 成功,返回数据:{}", url, JSON.toJSONString(headers), param, result);
-                return result;
+                result = response.body().string();
+                log.info("执行GET请求,url:{},header:{},param:{} 成功,返回结果:{}", url, JSON.toJSONString(headers), param, result);
             }
         } catch (IOException e) {
             log.error("执行GET请求,url:{},header:{},param:{} 失败!", url, JSON.toJSONString(headers), param, e);
+            ApiLogAspect.setApiLogException(apiLog, e);
+        } finally {
+            ApiLogAspect.finishApiLog(apiLog, response, result);
         }
-        return "";
+        return result;
     }
 
     /**
      * 向指定 URL 发送POST方法的请求
-     * @param  url 发送请求的 URL // * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
-     * @return     所代表远程资源的响应结果
+     * @param  url   发送请求的 URL
+     * @param  param 请求参数,请求参数是 name1=value1&name2=value2 的形式。
+     * @return       远程资源的响应结果
+     * @throws IOException 
      */
     public static String sendPost(String url, String param) {
+        ApiLog apiLog = null;
         FormBody.Builder builder = new FormBody.Builder();
         String urlNameString = url + "?" + param;
         FormBody body = builder.build();
         Request request = new Request.Builder().url(urlNameString).post(body).build();
         Response response = null;
+        String result = null;
         try {
+            apiLog = ApiLogAspect.initApiLog(request, param);
             response = HTTP_CLIENT.newCall(request).execute();
             // 调用成功
             if (response.isSuccessful() && response.body() != null) {
-                return response.body().string();
+                result = response.body().string();
+                log.info("执行GET请求,url:{},param:{} 成功,返回结果:{}", url, param, result);
             }
         } catch (IOException e) {
-            e.printStackTrace();
+            log.error("执行GET请求,url:{},param:{} 失败!", url, param, e);
+            ApiLogAspect.setApiLogException(apiLog, e);
+        } finally {
+            ApiLogAspect.finishApiLog(apiLog, response, result);
         }
-        return "";
+        return result;
     }
 
-    // 此方法是将参数以body形式发送post请求
-    public static String bodypost(String url, String json) {
+    /** JSONString形式发送POST请求 
+     * @throws IOException */
+    public static String sendPostByJsonStr(String url, String json) {
         ApiLog apiLog = null;
         // using above json body as a input to post API call
         RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, json);
@@ -144,8 +160,8 @@ public class OkHttpUtils {
                 log.info("执行POST请求,url:{},header:{},param:{} 成功,返回结果:{}", url, JSON.toJSONString(headers), json, result);
             }
         } catch (IOException e) {
-            ApiLogAspect.setApiLogException(apiLog, e);
             log.error("执行POST请求,url:{},header:{},param:{} 失败!", url, JSON.toJSONString(headers), json, e);
+            ApiLogAspect.setApiLogException(apiLog, e);
         } finally {
             ApiLogAspect.finishApiLog(apiLog, response, result);
         }
@@ -168,19 +184,15 @@ public class OkHttpUtils {
     }
 
     /**
-     * 支持嵌套泛型的post请求。
-     *
-     * <pre>
-     * Type type = new TypeToken<Results<User>>() {}.getType();
-     *
-     * <pre/>
+     * 支持嵌套泛型的POST请求
      * @param  url  链接
      * @param  json 请求json
      * @param  type 嵌套泛型
      * @return      响应对象, 可进行强转。
+     * @throws IOException 
      */
-    public static <T> T post(String url, String json, TypeReference<T> type) {
-        String result = bodypost(url, json);
+    public static <T> T sendPostByJsonStr(String url, String jsonString, TypeReference<T> type) throws IOException {
+        String result = sendPostByJsonStr(url, jsonString);
         if (Objects.nonNull(result) && Objects.nonNull(type)) {
             return JSON.parseObject(result, type);
         }