hxb
2022-11-24 535d69817e83737f3da6250fc6fb70da25fc1a4c
AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpSend.java
@@ -7,6 +7,7 @@
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken;
import com.mm.android.deviceaddmodule.LCDeviceEngine;
import com.mm.android.deviceaddmodule.mobilecommon.AppConsume.BusinessException;
import com.mm.android.deviceaddmodule.mobilecommon.utils.LogUtil;
import com.mm.android.deviceaddmodule.mobilecommon.utils.MD5Helper;
@@ -32,23 +33,15 @@
    public static JsonObject execute(Map<String, Object> paramsMap, String method,int timeOut) throws BusinessException {
        Map<String, Object> map = paramsInit(paramsMap);
        JsonObject jsonObj = null;
        JsonObject jsonResult = null;
        if (CONST.HOST.contains("hdlcontrol.com")) {
            // 返回json
            jsonObj = doPost(CONST.HOST + "/home-wisdom/imou/openapi/" + method, map, timeOut);
            LogUtil.debugLog(TAG, "url::" + method + "\n" + "response result:" + jsonObj.toString());
            if (jsonObj == null) {
                throw new BusinessException("openApi response is null");
            }
            jsonResult = jsonObj;
        if (CONST.isHdlServer()) {
            jsonResult = doPost(CONST.HOST + "/home-wisdom/imou/openapi/" + method, map, timeOut);
        } else {
            jsonObj = doPost(CONST.HOST + "/openapi/" + method, map, timeOut);
            LogUtil.debugLog(TAG, "url::" + method + "\n" + "response result:" + jsonObj.toString());
            if (jsonObj == null) {
            jsonResult = doPost(CONST.HOST + "/openapi/" + method, map, timeOut);
            if (jsonResult == null) {
                throw new BusinessException("openApi response is null");
            }
            jsonResult = jsonObj.getAsJsonObject("result");
            jsonResult = jsonResult.getAsJsonObject("result");
        }
        if (jsonResult == null) {
@@ -71,53 +64,14 @@
        }
    }
    public static JsonObject execute(String json, String method,int timeOut) throws BusinessException {
        // 返回json
        LogUtil.debugLog(TAG, "request result:" + json.toString());
        JsonObject jsonResult=null;
        if (CONST.HOST.contains("hdlcontrol.com")) {
            JsonObject jsonObj = doPost(CONST.HOST + "/home-wisdom/imou/openapi/"  + method, json, timeOut);
            LogUtil.debugLog(TAG, "URL::"+method+"\n"+"response result:" + jsonObj.toString());
            if (jsonObj == null) {
                throw new BusinessException("openApi response is null");
            }
            jsonResult = jsonObj;
        }
        else {
            JsonObject jsonObj = doPost(CONST.HOST + "/openapi/" + method, json, timeOut);
            LogUtil.debugLog(TAG, "URL::"+method+"\n"+"response result:" + jsonObj.toString());
            if (jsonObj == null) {
                throw new BusinessException("openApi response is null");
            }
            jsonResult = jsonObj.getAsJsonObject("result");
        }
        if (jsonResult == null) {
            throw new BusinessException("openApi response is null");
        }
        String code = jsonResult.get("code").getAsString();
        if (!"0".equals(code)) {
            String msg = jsonResult.get("msg").getAsString();
            throw new BusinessException(code + msg);
        }
        try {
            JsonObject jsonData = jsonResult.getAsJsonObject("data");
            if (jsonData ==null){
                jsonData=new JsonObject();
            }
            return jsonData;
        } catch (Throwable e) {
            BusinessException businessException = new BusinessException(e);
            throw businessException;
        }
    }
    private static JsonObject doPost(String url, Map<String, Object> map, int timeOut) throws BusinessException {
        Gson gson = new Gson();
        map.put("homeId",1547099040465408002L);
        String json =null;
        JsonObject jsonObject = new JsonObject();
        if(url.contains("hdlcontrol.com")) {
        String json;
        JsonObject jsonObject;
        if(CONST.isHdlServer()) {
            map.put("homeId", LCDeviceEngine.newInstance().getHomeId());
            if (map.containsKey("params")) {
                Map<String, Object> tempMap = (Map<String, Object>) map.get("params");
                map.remove("params");
@@ -144,6 +98,7 @@
        try {
            LogUtil.debugLog(TAG, "reqest: " + url + " data:" + json);
            String openApi = HttpClient.post(url, json, "application/json", "OpenApi",timeOut);
            LogUtil.debugLog(TAG, "返回结果: \r\n"  + openApi);
            jsonObject =  new JsonParser().parse(openApi).getAsJsonObject();
        } catch (IOException e) {
            BusinessException b = new BusinessException(e);
@@ -161,28 +116,6 @@
        return jsonObject;
    }
    private static JsonObject doPost(String url, String json, int timeOut) throws BusinessException {
        Gson gson = new Gson();
        JsonObject jsonObject = new JsonObject();
        try {
            LogUtil.debugLog(TAG, "reqest: " + url + " data:" + json.toString());
            String openApi = HttpClient.post(url, json, "application/json", "OpenApi",timeOut);
            jsonObject =  new JsonParser().parse(openApi).getAsJsonObject();
        } catch (IOException e) {
            BusinessException b = new BusinessException(e);
            if (e instanceof ConnectTimeoutException || e instanceof SocketTimeoutException
                    || e instanceof UnknownHostException
                    || e instanceof UnknownServiceException || e instanceof SSLException
                    || e instanceof SocketException) {
                b.errorDescription = "操作失败,请检查网络";
            }
            throw b;
        } catch (Throwable e) {
            BusinessException b = new BusinessException(e);
            throw b;
        }
        return jsonObject;
    }
    private static Map<String, Object> paramsInit(Map<String, Object> paramsMap) {
        long time = System.currentTimeMillis() / 1000;
@@ -208,26 +141,69 @@
        return map;
    }
//    public static JsonObject execute(String json, String method,int timeOut) throws BusinessException {
//        // 返回json
//        LogUtil.debugLog(TAG, "request result:" + json.toString());
//        JsonObject jsonResult=null;
//        if (CONST.isHdlServer()) {
//            JsonObject jsonObj = doPost(CONST.HOST + "/home-wisdom/imou/openapi/"  + method, json, timeOut);
//            LogUtil.debugLog(TAG, "URL::"+method+"\n"+"response result:" + jsonObj.toString());
//            if (jsonObj == null) {
//                throw new BusinessException("openApi response is null");
//            }
//            jsonResult = jsonObj;
//        }
//        else {
//            JsonObject jsonObj = doPost(CONST.HOST + "/openapi/" + method, json, timeOut);
//            LogUtil.debugLog(TAG, "URL::"+method+"\n"+"response result:" + jsonObj.toString());
//            if (jsonObj == null) {
//                throw new BusinessException("openApi response is null");
//            }
//            jsonResult = jsonObj.getAsJsonObject("result");
//        }
//
//        if (jsonResult == null) {
//            throw new BusinessException("openApi response is null");
//        }
//        String code = jsonResult.get("code").getAsString();
//        if (!"0".equals(code)) {
//            String msg = jsonResult.get("msg").getAsString();
//            throw new BusinessException(code + msg);
//        }
//        try {
//            JsonObject jsonData = jsonResult.getAsJsonObject("data");
//            if (jsonData ==null){
//                jsonData=new JsonObject();
//            }
//            return jsonData;
//        } catch (Throwable e) {
//            BusinessException businessException = new BusinessException(e);
//            throw businessException;
//        }
//    }
    /**
     * 基本类型加密
     * <p>
     * 判断当前值是否需要参与签名,保持跟云端一致
     * 空字符串不参与
     * 数组,集合不参与
     *
     * @return ture 需要加密
     */
    private static boolean valueNeedSign(String valueStr) {
        try {
            if (TextUtils.isEmpty(valueStr)) return false;
            final char[] strChar = URLDecoder.decode(valueStr, "utf-8")
                    .substring(0, 1).toCharArray();
            final char firstChar = strChar[0];
            return firstChar != '{' && firstChar != '[';
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
//    private static JsonObject doPost(String url, String json, int timeOut) throws BusinessException {
//        Gson gson = new Gson();
//        JsonObject jsonObject = new JsonObject();
//        try {
//            LogUtil.debugLog(TAG, "reqest: " + url + " data:" + json.toString());
//            String openApi = HttpClient.post(url, json, "application/json", "OpenApi",timeOut);
//            jsonObject =  new JsonParser().parse(openApi).getAsJsonObject();
//        } catch (IOException e) {
//            BusinessException b = new BusinessException(e);
//            if (e instanceof ConnectTimeoutException || e instanceof SocketTimeoutException
//                    || e instanceof UnknownHostException
//                    || e instanceof UnknownServiceException || e instanceof SSLException
//                    || e instanceof SocketException) {
//                b.errorDescription = "操作失败,请检查网络";
//            }
//            throw b;
//        } catch (Throwable e) {
//            BusinessException b = new BusinessException(e);
//            throw b;
//        }
//        return jsonObject;
//    }
}